compileSdkVersion 29
defaultConfig {
...
targetSdkVersion 29
...
}
据Play Console透露,新app将从8月起改为SDK 29,除非从11月起更新,否则无法上传。将目标SDK改为29后,app异常结束。日志为:
w/abc.def:访问隐藏字段landroid/view/layoutinflater;->mconstructorargs:[ljava/lang/object;(greylist-max-p,reflection,denied)
D/AndroidRuntime:正在关闭VM
E/AndroidRuntime:致命异常:主进程:net.abc.def,pid:28318 java.lang.RuntimeException:无法启动activity组件Info{net.abc.def/net.abc.def.ui.splashActivity}:android.view.inflateException:net.abc.def:layout/abc_screen_simple:net.abc.def:layout/abc_screen_simple:net.abc.support.v7.widget.FitWindowsLinearLayout中的二进制XML文件行#17
我猜这是因为我使用的是非SDK接口。因为谷歌解释如下
Landroid/view/LayoutInflater;->mConstructorArgs:[Ljava/lang/Object;
#没有公共替代方案。开发人员不应直接访问此字段。
异常终止是由于非SDK接口造成的吗?那么你是怎么解决的呢?my代码中使用了许多LayoutInflater。
如果源代码中没有触及mConstructorArgs,那么尝试搜索是否有库访问该字段。
chris Jenx为Android Q编写的书法库崩溃