无法找到文件,导致app无法运行

android
标签: #<Tag:0x00007fb8315f5528>

(ruisk) #1
E/AndroidRuntime: FATAL EXCEPTION: main
                  java.lang.NoClassDefFoundError: cn.jpush.android.api.e
                      at cn.jpush.android.api.JPushInterface.<clinit>(Unknown Source)
                      at com.ruisk.caifuyun.application.ZhangFuBaoApplication.onCreate(ZhangFuBaoApplication.java:52)
                      at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
                      at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4570)
                      at android.app.ActivityThread.access$1300(ActivityThread.java:147)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1332)
                      at android.os.Handler.dispatchMessage(Handler.java:99)
                      at android.os.Looper.loop(Looper.java:137)
                      at android.app.ActivityThread.main(ActivityThread.java:5265)
                      at java.lang.reflect.Method.invokeNative(Native Method)
                      at java.lang.reflect.Method.invoke(Method.java:525)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:760)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
                      at dalvik.system.NativeStart.main(Native Method)

#2

###使用出现异常提问:

  1. 你所使用的极光产品是什么(是 JPush / JMessage / JShare / JAnalytics / JSMS 的原生 SDK ,还是某插件,还是服务端某语言 SDK,必要时附上 GitHub 链接 )

  2. 该产品的 具体版本号 ;请 避免使用最新版本 这样的模糊描述词。

  3. 你需要咨询的、测试出现问题的是 iOS 、Android、Web、Windows 还是其他设备,具体系统和机型。

  4. 导致该问题出现的具体操作步骤(以便于我们测试复现)、观测到的具体现象(必要时可截图、录屏)、相关 log 信息(上传 TXT 文件或直接粘贴文本,如何查看客户端日志

  5. 使用官方 demo 是否有同样的问题

  6. 你自己有做过的排查步骤和结果,你的猜测。


(ruisk) #3

我这边用的是jpush android2.0.5版本的jar包,在酷派5892型号,安卓系统4.3版本的手机中出现的问题,具体问题我已经贴代码了,app直接就无法打开


#4

你的这个SDK版本很老了,你可以先用最新版本的 demo 在手机上安装试一下是否OK

在官网-应用信息-推送设置-Android-可以直接扫码下载到最新的demo


(ruisk) #5

好的,我先试试


(ruisk) #6

我更新了最新的sdk之后报了如下的错:

E/AndroidRuntime: FATAL EXCEPTION: main
                  java.lang.NoClassDefFoundError: cn.jpush.android.a
                      at cn.jpush.android.api.JPushInterface.<clinit>(SourceFile:95)
                      at com.ruisk.caifuyun.application.ZhangFuBaoApplication.onCreate(ZhangFuBaoApplication.java:52)
                      at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
                      at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4570)
                      at android.app.ActivityThread.access$1300(ActivityThread.java:147)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1332)
                      at android.os.Handler.dispatchMessage(Handler.java:99)
                      at android.os.Looper.loop(Looper.java:137)
                      at android.app.ActivityThread.main(ActivityThread.java:5265)
                      at java.lang.reflect.Method.invokeNative(Native Method)
                      at java.lang.reflect.Method.invoke(Method.java:525)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:760)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
                      at dalvik.system.NativeStart.main(Native Method)

#7

有更多的日志吗,Android的手机机型和系统给下,demo在手机上也有问题?


(ruisk) #8

日志就只有这个了,手机机型上面已经给过你们了


#9

你好,如果使用混淆,请不要混淆JPush相关类,混淆配置可以参考demo或文档
https://docs.jiguang.cn/jpush/client/Android/android_guide/#_6


(ruisk) #10

混淆的那个我跟着你们的文档设置的,然后我昨天跟着你们的集成文档再重新集成3.1.1版本的sdk之后就报了下面的错误

E/AndroidRuntime: FATAL EXCEPTION: main
                  java.lang.RuntimeException: Unable to get provider cn.jpush.android.service.DataProvider: java.lang.ClassNotFoundException: Didn't find class "cn.jpush.android.service.DataProvider" on path: DexPathList[[zip file "/data/app/com.ruisk.caifuyun-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.ruisk.caifuyun-1, /vendor/lib, /system/lib]]
                      at android.app.ActivityThread.installProvider(ActivityThread.java:5008)
                      at android.app.ActivityThread.installContentProviders(ActivityThread.java:4611)
                      at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4551)
                      at android.app.ActivityThread.access$1300(ActivityThread.java:147)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1332)
                      at android.os.Handler.dispatchMessage(Handler.java:99)
                      at android.os.Looper.loop(Looper.java:137)
                      at android.app.ActivityThread.main(ActivityThread.java:5265)
                      at java.lang.reflect.Method.invokeNative(Native Method)
                      at java.lang.reflect.Method.invoke(Method.java:525)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:760)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
                      at dalvik.system.NativeStart.main(Native Method)
                   Caused by: java.lang.ClassNotFoundException: Didn't find class "cn.jpush.android.service.DataProvider" on path: DexPathList[[zip file "/data/app/com.ruisk.caifuyun-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.ruisk.caifuyun-1, /vendor/lib, /system/lib]]
                      at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
                      at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
                      at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
                      at android.app.ActivityThread.installProvider(ActivityThread.java:4993)
                      at android.app.ActivityThread.installContentProviders(ActivityThread.java:4611) 
                      at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4551) 
                      at android.app.ActivityThread.access$1300(ActivityThread.java:147) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1332) 
                      at android.os.Handler.dispatchMessage(Handler.java:99) 
                      at android.os.Looper.loop(Looper.java:137) 
                      at android.app.ActivityThread.main(ActivityThread.java:5265) 
                      at java.lang.reflect.Method.invokeNative(Native Method) 
                      at java.lang.reflect.Method.invoke(Method.java:525) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:760) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576) 
                      at dalvik.system.NativeStart.main(Native Method) 

重新说明一下,我用的测试机是coolpad 5892型号的,安卓系统 4.3版本,jpush 跟 jcore这两个jar的包我都放到了libs文件夹下面了,对应的 .so 文件也都添加了,但是在这个机子app就是运行不起来,我用小米的机子就可以运行


#11

3.1.1新增了cn.jpush.android.service.DataProvider,请配置一下


(Kirk Wang) #12

怎么配置,开发文档没看到有这个,一运行就报错 Unable to get provider cn.jpush.android.service.DataProvider: java.lang.ClassNotFoundException: Didn’t find class “cn.jpush.android.service.DataProvider”


#13
<!-- since 3.0.9 Required SDK 核心功能-->
        <provider
            android:authorities="您应用的包名.DataProvider"
            android:name="cn.jpush.android.service.DataProvider"
            android:exported="true"
        />