Open thymleaf opened 6 years ago
看下找不到的这个类是不是没在主dex?另外一个issue也提到这个问题了,就是找不到的类没分在主dex,所以就报错了。
然后看下这个类: com.library.common.hotfix.LocalApplicationLike 是不是间接实现了com.tencent.tinker.entry.ApplicationLike?
实现了ApplicationLike:
@DefaultLifeCycle(application = "com.xxx.android.app.App", flags = ShareConstants.TINKER_ENABLE_ALL) public class LocalApplicationLike extends DefaultApplicationLike implements IApp { private AppDelegate mAppDelegate;
public LocalApplicationLike(Application application, int tinkerFlags, boolean tinkerLoadVerifyFlag,
long applicationStartElapsedTime, long applicationStartMillisTime,
Intent tinkerResultIntent)
{
super(application, tinkerFlags, tinkerLoadVerifyFlag, applicationStartElapsedTime, applicationStartMillisTime,
tinkerResultIntent);
}
....
}
只不过LocalApplicationLike是在library里,不知道会不会对分包有影响,目前只在红米 Android版本:4.4.4发现该异常,其他机型加载补丁正常、运行正常。请帮忙看看,谢谢~
@tomystang
这个问题就是 找不到的类没分在主dex ,gradle 配置参考。https://www.jianshu.com/p/78f2e2d9484a
异常类型:app运行时异常
手机型号:红米 HM 2A
手机系统版本:红米 Android版本:4.4.4; MIUI版本:8.1.2
tinker版本:1.9.9
gradle版本:3.0.0
是否使用热更新SDK:没有使用
系统:Win7
问题描述:编译正常,启动直接报错 Tinker Exception:createDelegate failed
堆栈/日志: 09-30 10:56:09.678 27385-27385/com.qiandw E/Tinker.UncaughtHandler: TinkerUncaughtHandler catch exception:java.lang.RuntimeException: Unable to instantiate application com.qiandw.android.app.App: com.tencent.tinker.loader.TinkerRuntimeException: Tinker Exception:createDelegate failed at android.app.LoadedApk.makeApplication(LoadedApk.java:509) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4427) at android.app.ActivityThread.access$1500(ActivityThread.java:147) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1271) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5135) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:614) at dalvik.system.NativeStart.main(Native Method) Caused by: com.tencent.tinker.loader.TinkerRuntimeException: Tinker Exception:createDelegate failed at com.tencent.tinker.loader.app.TinkerApplication.createDelegate(TinkerApplication.java:115) at com.tencent.tinker.loader.app.TinkerApplication.ensureDelegate(TinkerApplication.java:121) at com.tencent.tinker.loader.app.TinkerApplication.onBaseContextAttached(TinkerApplication.java:135) at com.tencent.tinker.loader.app.TinkerApplication.attachBaseContext(TinkerApplication.java:152) at android.app.Application.attach(Application.java:185) at android.app.Instrumentation.newApplication(Instrumentation.java:991) at android.app.Instrumentation.newApplication(Instrumentation.java:975) at android.app.LoadedApk.makeApplication(LoadedApk.java:504) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4427) at android.app.ActivityThread.access$1500(ActivityThread.java:147) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1271) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5135) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:614) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.ClassNotFoundException: com.library.common.hotfix.LocalApplicationLike at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:251) at com.tencent.tinker.loader.app.TinkerApplication.createDelegate(TinkerApplication.java:109) at com.tencent.tinker.loader.app.TinkerApplication.ensureDelegate(TinkerApplication.java:121) at com.tencent.tinker.loader.app.TinkerApplication.onBaseContextAttached(TinkerApplication.java:135) at com.tencent.tinker.loader.app.TinkerApplication.attachBaseContext(TinkerApplication.java:152) at android.app.Application.attach(Application.java:185) at android.app.Instrumentation.newApplication(Instrumentation.java:991) at android.app.Instrumentation.newApplication(Instrumentation.java:975) at android.app.LoadedApk.makeApplication(LoadedApk.java:504) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4427) at android.app.ActivityThread.access$1500(ActivityThread.java:147) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1271) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5135) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:614) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NoClassDefFoundError: com/library/common/hotfix/LocalApplicationLike at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:251) at com.tencent.tinker.loader.app.TinkerApplication.createDelegate(TinkerApplication.java:109) at com.tencent.tinker.loader.app.TinkerApplication.ensureDelegate(TinkerApplication.java:121) at com.tencent.tinker.loader.app.TinkerApplication.onBaseContextAttached(TinkerApplication.java:135) at com.tencent.tinker.loader.app.TinkerApplication.attachBaseContext(TinkerApplication.java:152) at android.app.Application.attach(Application.java:185) at android.app.Instrumentation.newApplication(Instrumentation.java:991) at android.app.Instrumentation.newApplication(Instrumentation.java:975) at android.app.LoadedApk.makeApplication(LoadedApk.java:504) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4427) at android.app.ActivityThread.access$1500(ActivityThread.java:147) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1271) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5135) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:614) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.library.common.hotfix.LocalApplicationLike" on path: DexPathList[[zip file "/data/app/com.qiandw-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.qiandw-2, /vendor/lib, /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:497) at java.lang.ClassLoader.loadClass(ClassLoader.java:457) at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:251) at com.tencent.tinker.loader.app.TinkerApplication.createDelegate(TinkerApplication.java:109) at com.tencent.tinker.loader.app.TinkerApplication.ensureDelegate(TinkerApplication.java:121) at com.tencent.tinker.loader.app.TinkerApplication.onBaseContextAttached(TinkerApplication.java:135) at com.tencent.tinker.loader.app.TinkerApplication.attachBaseContext(TinkerApplication.java:152) at android.app.Application.attach(Application.java:185) at android.app.Instrumentation.newApplication(Instrumentation.java:991) at android.app.Instrumentation.newApplication(Instrumentation.java:975) at android.app.LoadedApk.makeApplication(LoadedApk.java:504) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4427) at android.app.ActivityThread.access$1500(ActivityThread.java:147) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1271) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5135) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:614) at dalvik.system.NativeStart.main(Native Method)
09-30 10:56:09.678 27385-27385/com.qiandw E/AndroidRuntime: FATAL EXCEPTION: main Process: com.qiandw, PID: 27385 java.lang.RuntimeException: Unable to instantiate application com.qiandw.android.app.App: com.tencent.tinker.loader.TinkerRuntimeException: Tinker Exception:createDelegate failed at android.app.LoadedApk.makeApplication(LoadedApk.java:509) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4427) at android.app.ActivityThread.access$1500(ActivityThread.java:147) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1271) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5135) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:614) at dalvik.system.NativeStart.main(Native Method) Caused by: com.tencent.tinker.loader.TinkerRuntimeException: Tinker Exception:createDelegate failed at com.tencent.tinker.loader.app.TinkerApplication.createDelegate(TinkerApplication.java:115) at com.tencent.tinker.loader.app.TinkerApplication.ensureDelegate(TinkerApplication.java:121) at com.tencent.tinker.loader.app.TinkerApplication.onBaseContextAttached(TinkerApplication.java:135) at com.tencent.tinker.loader.app.TinkerApplication.attachBaseContext(TinkerApplication.java:152) at android.app.Application.attach(Application.java:185) at android.app.Instrumentation.newApplication(Instrumentation.java:991) at android.app.Instrumentation.newApplication(Instrumentation.java:975) at android.app.LoadedApk.makeApplication(LoadedApk.java:504) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4427) at android.app.ActivityThread.access$1500(ActivityThread.java:147) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1271) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5135) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:614) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.ClassNotFoundException: com.library.common.hotfix.LocalApplicationLike at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:251) at com.tencent.tinker.loader.app.TinkerApplication.createDelegate(TinkerApplication.java:109) at com.tencent.tinker.loader.app.TinkerApplication.ensureDelegate(TinkerApplication.java:121) at com.tencent.tinker.loader.app.TinkerApplication.onBaseContextAttached(TinkerApplication.java:135) at com.tencent.tinker.loader.app.TinkerApplication.attachBaseContext(TinkerApplication.java:152) at android.app.Application.attach(Application.java:185) at android.app.Instrumentation.newApplication(Instrumentation.java:991) at android.app.Instrumentation.newApplication(Instrumentation.java:975) at android.app.LoadedApk.makeApplication(LoadedApk.java:504) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4427) at android.app.ActivityThread.access$1500(ActivityThread.java:147) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1271) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5135) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:614) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NoClassDefFoundError: com/library/common/hotfix/LocalApplicationLike at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:251) at com.tencent.tinker.loader.app.TinkerApplication.createDelegate(TinkerApplication.java:109) at com.tencent.tinker.loader.app.TinkerApplication.ensureDelegate(TinkerApplication.java:121) at com.tencent.tinker.loader.app.TinkerApplication.onBaseContextAttached(TinkerApplication.java:135) at com.tencent.tinker.loader.app.TinkerApplication.attachBaseContext(TinkerApplication.java:152) at android.app.Application.attach(Application.java:185) at android.app.Instrumentation.newApplication(Instrumentation.java:991) at android.app.Instrumentation.newApplication(Instrumentation.java:975) at android.app.LoadedApk.makeApplication(LoadedApk.java:504) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4427) at android.app.ActivityThread.access$1500(ActivityThread.java:147) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1271) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5135) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:614) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.library.common.hotfix.LocalApplicationLike" on path: DexPathList[[zip file "/data/app/com.qiandw-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.qiandw-2, /vendor/lib, /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:497) at java.lang.ClassLoader.loadClass(ClassLoader.java:457) at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:251) at com.tencent.tinker.loader.app.TinkerApplication.createDelegate(TinkerApplication.java:109) at com.tencent.tinker.loader.app.TinkerApplication.ensureDelegate(TinkerApplication.java:121) at com.tencent.tinker.loader.app.TinkerApplication.onBaseContextAttached(TinkerApplication.java:135) at com.tencent.tinker.loader.app.TinkerApplication.attachBaseContext(TinkerApplication.java:152) at android.app.Application.attach(Application.java:185) at android.app.Instrumentation.newApplication(Instrumentation.java:991) at android.app.Instrumentation.newApplication(Instrumentation.java:975) at android.app.LoadedApk.makeApplication(LoadedApk.java:504) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4427) at android.app.ActivityThread.access$1500(ActivityThread.java:147) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1271) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5135) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:614) at dalvik.system.NativeStart.main(Native Method)