我也遇到过类似的问题,报错日志:Please call the AutoSizeConfig#init() first
崩溃场景:华为,小米等多部手机没问题,后来公司同事用乐视手机就出现这个崩溃
解决办法:注释掉setAutoAdaptStrategy(new AutoAdaptStrategy())方法就不会崩溃了
查看代码:
//第一步:查看源码有两个地方有这个文字提示
Preconditions.checkNotNull(mApplication, "Please call the AutoSizeConfig#init() first");
Preconditions.checkNotNull(mActivityLifecycleCallbacks, "Please call the AutoSizeConfig#init() first");
//第二步:再进去看代码如下所示
//可知传进来的reference为null空值导致出现问题
public static <T> T checkNotNull(T reference, Object errorMessage) {
if (reference == null) {
throw new NullPointerException(String.valueOf(errorMessage));
} else {
return reference;
}
}
//第三步:查看什么时候创建mApplication和mActivityLifecycleCallbacks对象
//mActivityLifecycleCallbacks对象是在AutoSizeConfig类中的init方法中创建的,第206行
//mApplication对象实在AutoSizeConfig类中init方法中赋值的,第171行
//而init初始化的操作又是在InitProvider类中的onCreate方法中初始化的,(Application) getContext().getApplicationContext()获取全局application会不会出现问题呢?而这个需要的application上下文能否让开发者传递进来呢?
@Override
public boolean onCreate() {
AutoSizeConfig.getInstance()
.setLog(true)
.init((Application) getContext().getApplicationContext())
.setUseDeviceSize(false);
return true;
}
出现bug原因分析
还不清楚,很奇怪,希望得到大神解答
崩溃日志信息
java.lang.RuntimeException: Unable to create application com.paidian.hwmc.base.SophixStubApplication: java.lang.NullPointerException: Please call the AutoSizeConfig#init() first
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5210)
at android.app.ActivityThread.-wrap3(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1659)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5981)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)
Caused by: java.lang.NullPointerException: Please call the AutoSizeConfig#init() first
at me.jessyan.autosize.utils.Preconditions.checkNotNull(Preconditions.java:77)
at me.jessyan.autosize.AutoSizeConfig.setAutoAdaptStrategy(AutoSizeConfig.java:247)
at com.paidian.hwmc.base.BaseApplication.initAutoSizeConfig(BaseApplication.java:385)
at com.paidian.hwmc.base.BaseApplication.onCreate(BaseApplication.java:133)
at com.taobao.sophix.a.c.b(Sophix:722)
at com.taobao.sophix.a.e.a(Sophix:177)
at com.taobao.sophix.SophixApplication.onCreate(Sophix:17)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1018)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5207)
at android.app.ActivityThread.-wrap3(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1659)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5981)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)
我也遇到过类似的问题,报错日志:Please call the AutoSizeConfig#init() first
崩溃场景:华为,小米等多部手机没问题,后来公司同事用乐视手机就出现这个崩溃
解决办法:注释掉setAutoAdaptStrategy(new AutoAdaptStrategy())方法就不会崩溃了
查看代码:
出现bug原因分析
还不清楚,很奇怪,希望得到大神解答
崩溃日志信息