デバッグモードで開発してMyContentProvider
実行すると正常に動作するアプリがあります。
<provider android:name=".MyContentProvider"
android:authorities="com.contactcities"
android:exported="false">
</provider>
しかし、アプリをエクスポートしてダウンロードして実行すると、すぐにクラッシュします:
10-10 18:24:37.682 E/AndroidRuntime(10428): FATAL EXCEPTION: main
10-10 18:24:37.682 E/AndroidRuntime(10428): java.lang.RuntimeException: Unable to get provider com.contactcities.MyContentProvider: java.lang.ClassNotFoundException: com.contactcities.MyContentProvider in loader dalvik.system.PathClassLoader[/system/framework/com.google.android.maps.jar:/data/app/com.contactcities-1.apk]
10-10 18:24:37.682 E/AndroidRuntime(10428): at android.app.ActivityThread.installProvider(ActivityThread.java:4509)
10-10 18:24:37.682 E/AndroidRuntime(10428): at android.app.ActivityThread.installContentProviders(ActivityThread.java:4281)
10-10 18:24:37.682 E/AndroidRuntime(10428): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4237)
10-10 18:24:37.682 E/AndroidRuntime(10428): at android.app.ActivityThread.access$3000(ActivityThread.java:125)
10-10 18:24:37.682 E/AndroidRuntime(10428): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2071)
10-10 18:24:37.682 E/AndroidRuntime(10428): at android.os.Handler.dispatchMessage(Handler.java:99)
10-10 18:24:37.682 E/AndroidRuntime(10428): at android.os.Looper.loop(Looper.java:123)
2.2、4.0、4.1のすべてのデバイスで再現できます
今日はたくさんのスレッドを読みました。それらのいくつかはこれについてProGuardを非難します。追加してみました
-keep public class com.contactcities.MyContentProvider
しかし、運がありません。
私がプロガードを無効にしたときproguard.config=proguard.cfg
、私のを入れないことによってproject.properties
。リリースバージョンでも同じエラーが発生します。デバッグも問題ありません。たぶん、そのようなプロガードを無効にするのに十分ではありませんか?
たぶんヒントは、このクラッシュでmaps.jarを参照しているということです。なぜそうなるのかわからない
in loader dalvik.system.PathClassLoader[/system/framework/com.google.android.maps.jar
手がかりは大歓迎です