apptentive / apptentive-android

Apptentive Android SDK
http://www.apptentive.com
BSD 3-Clause "New" or "Revised" License
65 stars 64 forks source link

ClassNotFoundException NetworkStateReceiver #86

Closed zendorx closed 9 years ago

zendorx commented 10 years ago

This crash appears on google play very often

Devices: Galaxy Exhibit, Galaxy S3 (m0), Galaxy Note 10.1 (p4noterf), nuclear-n01, nuclear-inet. Android 4.+

java.lang.RuntimeException: Unable to instantiate receiver com.apptentive.android.sdk.comm.NetworkStateReceiver: java.lang.ClassNotFoundException: com.apptentive.android.sdk.comm.NetworkStateReceiver at android.app.ActivityThread.handleReceiver(ActivityThread.java:2243) at android.app.ActivityThread.access$1600(ActivityThread.java:134) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1294) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4867) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1007) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:774) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.ClassNotFoundException: com.apptentive.android.sdk.comm.NetworkStateReceiver at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) at java.lang.ClassLoader.loadClass(ClassLoader.java:501) at java.lang.ClassLoader.loadClass(ClassLoader.java:461) at android.app.ActivityThread.handleReceiver(ActivityThread.java:2238) ... 10 more

skykelsey commented 10 years ago

Hi Zendorx,

Did you make sure to import the Apptentive SDK library project into your project properly? Which IDE are you using? If you comment out the receiver element from your manifest, does the SDK work properly? I'm guessing that it won't, and that the problem is that the Apptentive SDK is not imported properly, or that you are missing a dependency from your app to the Apptentive SDK.

zendorx commented 10 years ago

if I delete this receiver in the manifest it works well: I send messages to the dashboard properly and can see them. We are building project with Ant without some IDE

skykelsey commented 10 years ago

I don't know what is causing this problem. Can you tell me how often this is happening vs how many active users you have? If you don't want to share those details, can you express is as a ratio of crashes in the last month vs active installs?

Until I can find a fix for this, omitting the receiver from your manifest will fix this problem, and won't have any adverse affects on your app.

Thanks, Sky

skykelsey commented 9 years ago

I've deprecated the NetworkStateReceiver. Please continue to leave that piece of XML out of your manifest, and everything should work fine.