catch exception when loading tinker:java.lang.IllegalAccessError

来源:互联网 发布:jvm调优面试题知乎 编辑:程序博客网 时间:2024/06/05 21:55

     catch exception when loading tinker:java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
                                                                         at com.meihuo.mhcs.application.SampleApplication.initOkHttp(SourceFile:63)
                                                                         at com.meihuo.mhcs.application.SampleApplication.onCreate(SourceFile:45)
                                                                         at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
                                                                         at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4328)
                                                                         at android.app.ActivityThread.access$1500(ActivityThread.java:135)
                                                                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
                                                                         at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                         at android.os.Looper.loop(Looper.java:136)
                                                                         at android.app.ActivityThread.main(ActivityThread.java:5001)
                                                                         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:736)
                                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:570)
                                                                         at dalvik.system.NativeStart.main(Native Method)


在集成Bugly之后 如果我们 SampleApplicationLike extends DefaultApplicationLike 改造的这种方法集成,就不可以在SampleApplication 里做任何操作

/** * 作者: CoolTone * 描述: Application实现类  这里任何操作都不做 * TODO 并且 SampleApplicationLike 包名一定要对应 */public class SampleApplication extends TinkerApplication {    public SampleApplication() {        super(ShareConstants.TINKER_ENABLE_ALL, "******.SampleApplicationLike",                "com.tencent.tinker.loader.TinkerLoader", false);    }}

我的初始化和在Application里所做的操作我们都要放到 SampleApplicationLike 里进行

方法写在onCreate() 里

/** * 作者: CoolTone * 描述: Application */public class SampleApplicationLike extends DefaultApplicationLike {    public static final String TAG = "Tinker.SampleApplicationLike";    public SampleApplicationLike(            Application application,            int tinkerFlags,            boolean tinkerLoadVerifyFlag,            long applicationStartElapsedTime,            long applicationStartMillisTime,            Intent tinkerResultIntent) {        super(application, tinkerFlags,                tinkerLoadVerifyFlag, applicationStartElapsedTime,                applicationStartMillisTime, tinkerResultIntent);    }    @Override    public void onCreate() {        super.onCreate();        // 这里实现SDK初始化,appId替换成你的在Bugly平台申请的appId        // 调试时,将第三个参数改为true        Bugly.init(getApplication(), "自己app的ID", true);    }    @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)    @Override    public void onBaseContextAttached(Context base) {        super.onBaseContextAttached(base);        // you must install multiDex whatever tinker is installed!        MultiDex.install(base);        // 安装tinker        // TinkerManager.installTinker(this); 替换成下面Bugly提供的方法        Beta.installTinker(this);    }    @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)    public void registerActivityLifecycleCallback(Application.ActivityLifecycleCallbacks callbacks) {        getApplication().registerActivityLifecycleCallbacks(callbacks);    }}

这样程序就不会报这个错误了...



阅读全文
1 0
原创粉丝点击