compileSdkVersion 29
defaultConfig {
...
targetSdkVersion 29
...
}
Согласно Play Console, новое приложение будет изменено на SDK 29 с августа и не может быть загружено, если не обновлено с ноября. Приложение завершилось ненормально после изменения целевого SDK на 29. Журнал:
W / ab c .def: доступ к скрытому полю Landroid / view / LayoutInflater; -> mConstructorArgs: [Ljava / lang / Object; (greylist-max-p, отражение, отказано)
D / AndroidRuntime: Завершение работы ВМ
E / Android Время выполнения: FATAL EXCEPTION: основной процесс: net .ab c .def , PID: 28318 java .lang.RuntimeException: невозможно запустить действие ComponentInfo {net .ab c .def /net .ab c .def.ui.SplashActivity}: android .view.InflateException : Двоичный XML строка файла # 17 в
net .ab c .def: layout / abc_screen_simple: двоичный XML строка файла # 17 в
net .ab c .def: layout / abc_screen_simple: ошибка inflating class android .support.v7.widget.FitWindowsLinearLayout
Я предполагаю, что это потому, что я использую не-SDK интерфейс. Потому что Google объясняет следующее:
Landroid/view/LayoutInflater;->mConstructorArgs:[Ljava/lang/Object;
# Нет альтернативы publi c. Разработчики никогда не должны обращаться к этому полю напрямую.
Произошло ли ненормальное завершение работы из-за интерфейса, отличного от SDK? Так как же решить эту проблему? В моем коде используется много LayoutInflater.