Tencent / tinker

Tinker is a hot-fix solution library for Android, it supports dex, library and resources update without reinstall apk.
Other
17.14k stars 3.33k forks source link

TinkerPatchReflectApplication 找不到 #1303

Closed zhaoweiguo5505 closed 4 years ago

zhaoweiguo5505 commented 4 years ago

Issue/提问须知

在提交issue之前,我们应该先查询是否已经有相关的issue以及常见问题。提交issue时,我们需要写明issue的原因,以及编译或运行过程的日志(加载进程以及Patch进程)。issue需要以下面的格式:

异常类型:app运行时异常/编译异常

手机型号:三星S8

手机系统版本:9.0

tinker版本:如:1.2.13

gradle版本:3.5

是否使用热更新SDK: TinkerPatch SDK

系统:如:Mac

堆栈/日志:
1. 如是编译异常,请在执行gradle命令时,加上--stacktrace;
2. 日志我们需要过滤"Tinker."关键字;
3. 对于合成失败的情况,请给出:patch进程的日志,这里需要将Android Moniter右上角设为No Filter。

debug包 运行正常。但是打 release包 进去闪退。找不到application

2019-12-10 15:34:59.844 12195-12195/com.vbt.app E/AndroidRuntime: FATAL EXCEPTION: main Process: com.vbt.app, PID: 12195 java.lang.RuntimeException: Unable to instantiate application com.tinkerpatch.sdk.loader.TinkerPatchReflectApplication: java.lang.IllegalStateException: java.lang.ClassNotFoundException: com.vbt.app.VBTApplication at android.app.LoadedApk.makeApplication(LoadedApk.java:1226) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6431) at android.app.ActivityThread.access$1300(ActivityThread.java:219) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) Caused by: java.lang.IllegalStateException: java.lang.ClassNotFoundException: com.vbt.app.VBTApplication at com.tinkerpatch.sdk.loader.TinkerPatchReflectApplication.a(Unknown Source:43) at com.tinkerpatch.sdk.loader.TinkerPatchReflectApplication.attachBaseContext(Unknown Source:3) at android.app.Application.attach(Application.java:351) at android.app.Instrumentation.newApplication(Instrumentation.java:1149) at android.app.LoadedApk.makeApplication(LoadedApk.java:1218) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6431)  at android.app.ActivityThread.access$1300(ActivityThread.java:219)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859)  at android.os.Handler.dispatchMessage(Handler.java:107)  at android.os.Looper.loop(Looper.java:214)  at android.app.ActivityThread.main(ActivityThread.java:7356)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)  Caused by: java.lang.ClassNotFoundException: com.vbt.app.VBTApplication at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:454) at com.tinkerpatch.sdk.loader.TinkerPatchReflectApplication.a(Unknown Source:11) at com.tinkerpatch.sdk.loader.TinkerPatchReflectApplication.attachBaseContext(Unknown Source:3)  at android.app.Application.attach(Application.java:351)  at android.app.Instrumentation.newApplication(Instrumentation.java:1149)  at android.app.LoadedApk.makeApplication(LoadedApk.java:1218)  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6431)  at android.app.ActivityThread.access$1300(ActivityThread.java:219)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859)  at android.os.Handler.dispatchMessage(Handler.java:107)  at android.os.Looper.loop(Looper.java:214)  at android.app.ActivityThread.main(ActivityThread.java:7356)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)  Caused by: java.lang.ClassNotFoundException: com.vbt.app.VBTApplication at java.lang.Class.classForName(Native Method)  at java.lang.Class.forName(Class.java:454)  at com.tinkerpatch.sdk.loader.TinkerPatchReflectApplication.a(Unknown Source:11)  at com.tinkerpatch.sdk.loader.TinkerPatchReflectApplication.attachBaseContext(Unknown Source:3)  at android.app.Application.attach(Application.java:351)  at android.app.Instrumentation.newApplication(Instrumentation.java:1149)  at android.app.LoadedApk.makeApplication(LoadedApk.java:1218)  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6431)  at android.app.ActivityThread.access$1300(ActivityThread.java:219)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859)  at android.os.Handler.dispatchMessage(Handler.java:107)  at android.os.Looper.loop(Looper.java:214)  at android.app.ActivityThread.main(ActivityThread.java:7356)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)  2019-12-10 15:34:59.844 12195-12195/com.vbt.app E/Tinker.UncaughtHandler: TinkerUncaughtHandler catch exception:java.lang.RuntimeException: Unable to instantiate application com.tinkerpatch.sdk.loader.TinkerPatchReflectApplication: java.lang.IllegalStateException: java.lang.ClassNotFoundException: com.vbt.app.VBTApplication at android.app.LoadedApk.makeApplication(LoadedApk.java:1226) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6431) at android.app.ActivityThread.access$1300(ActivityThread.java:219) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) Caused by: java.lang.IllegalStateException: java.lang.ClassNotFoundException: com.vbt.app.VBTApplication at com.tinkerpatch.sdk.loader.TinkerPatchReflectApplication.a(Unknown Source:43) at com.tinkerpatch.sdk.loader.TinkerPatchReflectApplication.attachBaseContext(Unknown Source:3) at android.app.Application.attach(Application.java:351) at android.app.Instrumentation.newApplication(Instrumentation.java:1149) at android.app.LoadedApk.makeApplication(LoadedApk.java:1218) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6431)  at android.app.ActivityThread.access$1300(ActivityThread.java:219)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1859)  at android.os.Handler.dispatchMessage(Handler.java:107)  at android.os.Looper.loop(Looper.java:214)  at android.app.ActivityThread.main(ActivityThread.java:7356)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)  Caused by: java.lang.ClassNotFoundException: com.vbt.app.VBTApplication at java.lang.Class.classForName(Native Method)

tys282000 commented 4 years ago

检查一下release包的dex中是否含有这个类?com.vbt.app.VBTApplication

如果没有的话,检查一下 tinker 是否没有使用自动生成 application 的模式(就是你的 ApplicationLike类是否加了 tinker 的注解,没加的话就是手动创建 application 的模式),如果 application 没有自动生成,就需要你手动创建了。

zhaoweiguo5505 commented 4 years ago

检查一下release包的dex中是否含有这个类?com.vbt.app.VBTApplication

如果没有的话,检查一下 tinker 是否没有使用自动生成 application 的模式(就是你的 ApplicationLike类是否加了 tinker 的注解,没加的话就是手动创建 application 的模式),如果 application 没有自动生成,就需要你手动创建了。

解决了。谢谢大佬

1136346879 commented 4 years ago

哥们 怎么解决的? java.lang.RuntimeException: Unable to instantiate application com.tinkerpatch.sdk.loader.TinkerPatchReflectApplication: java.lang.IllegalStateException: java.lang.ClassNotFoundException: com.vbt.app.VBTApplication 我这边也是 找不到 application 我是从 1.9.13.2 升级到 1.9.14.7 报错 安装 进入App 就闪退