Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unable to get provider : ClassNotFoundException

I have MyContentProvider in my app which works fine when I develop and run in debug mode.

<provider android:name=".MyContentProvider"
        android:authorities="com.contactcities"
        android:exported="false">
</provider>

But when I export the app, download it and run it, it crashes instantly :

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)

I can reproduce it on all my devices, 2.2, 4.0, 4.1

I have read through numerous threads today. Some of them blaming ProGuard for this. I have tried adding

-keep public class com.contactcities.MyContentProvider

but with no luck.

When I disable proguard, by not putting proguard.config=proguard.cfg in my project.properties. It still gives the same error in release version. Debug is again fine. Maybe its not enough to disable proguard like that?

Maybe the hint is that it refers to maps.jar in this crash. Im not sure why it does that

in loader dalvik.system.PathClassLoader[/system/framework/com.google.android.maps.jar

Any clues will be much appreciated

like image 919
AndroidGecko Avatar asked Oct 10 '12 17:10

AndroidGecko


1 Answers

Argh, thought I tried that, but seems like I didnt.

Project->clean made it work

face palm

like image 146
AndroidGecko Avatar answered Sep 19 '22 14:09

AndroidGecko