当我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 时,不要放入proguard.config=proguard.cfg
我的project.properties
. 它仍然在发布版本中给出相同的错误。调试又好了。也许它不足以禁用这样的proguard?
也许提示是它在这次崩溃中引用了 maps.jar。我不知道为什么会这样
in loader dalvik.system.PathClassLoader[/system/framework/com.google.android.maps.jar
任何线索将不胜感激