提问者:小点点

在android studio中将targetSDK更改为29后关闭应用程序


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。


共1个答案

匿名用户

如果源代码中没有触及mConstructorArgs,那么尝试搜索是否有库访问该字段。

chris Jenx为Android Q编写的书法库崩溃