compileSdkVersion 29
defaultConfig {
...
targetSdkVersion 29
...
}
根据Play控制台的规定,新应用将从8月开始更改为SDK 29,除非从11月开始进行更新,否则无法上传。将目标SDK更改为29后,该应用程序异常结束。日志为:
W / abc.def:访问隐藏字段 Landroid / view / LayoutInflater;-> mConstructorArgs:[Ljava / lang / Object; (greylist-max-p,反射,已拒绝)
D / AndroidRuntime:关闭VM
E / Android运行时:致命异常:主要 进程:net.abc.def,PID:28318 java.lang.RuntimeException:无法启动活动ComponentInfo {net.abc.def / net.abc.def.ui.SplashActivity}: android.view.InflateException:二进制XML文件的第17行 net.abc.def:layout / abc_screen_simple:二进制XML文件的第17行 net.abc.def:layout / abc_screen_simple:错误膨胀类 android.support.v7.widget.FitWindowsLinearLayout
我猜这是因为我使用的是非SDK接口。因为Google解释如下
Landroid/view/LayoutInflater;->mConstructorArgs:[Ljava/lang/Object;
#没有其他选择。开发人员切勿直接访问此字段。
是否由于非SDK接口导致异常终止?那么您如何解决呢?我的代码中使用了许多LayoutInflaters。
答案 0 :(得分:0)
如果您没有触摸源代码中的mConstructorArgs,请尝试搜索是否有任何库正在访问该字段。