Я пытаюсь изменить язык во время выполнения. Он отлично работал на API 29 (android версия 10). Мне нужно, чтобы он работал на Nougat 7.1.1 (API 25). Это был кошмар. Если мне нужно изменить язык устройства через настройки .., это работает. Я вижу правильные элементы рисования и строки (строки. xml)
Моя цель - сделать так, чтобы переключение языка произошло во время выполнения.
Я вызываю activity.recreate () в onResume (). Экран становится черным. Я получаю исключение, и оно указывает на метод onCreate в строке 58. Это мои методы onCreate и onResume:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // this is the line 58
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
...
}
@Override
protected void onResume() {
super.onResume();
hideSystemUI();
prepareVideoPlayback();
locale = new Locale("en");
recreate();
}
2020-03-14 23: 49: 32.400 13533-13533 / com.example .plasmavietiles W / art: До Android 4.1, метод android .graphics.PorterDuffColorFilter androidx.vectordrawable.graphics.drawable.VectorDrawableCompat.updateTintFilter (android .graphics.PorterDuffColorFilter, * 101. *. android .graphics.PorterDuff $ Mode) неправильно переопределил бы закрытый для пакета метод в android .graphics.drawable.Drawable 2020-03-14 23: 49: 32.422 13533-13533 / com.example.plasmavietiles I / art: Отклонение повторного инициирования для ранее неудачного класса java .lang.Class: java .lang.NoClassDefFoundError: Ошибка разрешения: Landroid / view / View $ OnUnhandledKeyEventListener; ... Вызвано: java .lang.ClassNotFoundException: не найден класс "android .view.View $ OnUnhandledKeyEventListener" по пути: DexPathList [[файл zip "/data/app/com.example.plasmavietiles- 2 / base.apk "], nativeLibraryDirectories = [/ data / app / com.example.plasmavietiles-2 / lib / x86_64, / system / lib64, / vendor / lib64]] 2020-03-14 22: 54: 12.325 5972 -5972 / com.example.plasmavietiles I / art: at java .lang.Class dalvik.system.BaseDexClassLoader.findClass (java .lang.String) (BaseDexClassLoader. java: 56) 2020-03-14 22: 54: 12.325 5972-5972 / com.example.plasmavietiles I / art: at java .lang.Class java .lang.ClassLoader.loadClass (java .lang.String, boolean) (ClassLoader. java: 380) 2020-03-14 22: 54: 12.325 5972-5972 / com.example.plasmavietiles I / art: at java .lang.Class java .lang.ClassLoader.loadClass (java. lang.String) (ClassLoader. java: 312) 2020-03-14 22: 54: 12.325 5972-5972 / com.example.plasmavietiles I / art: at void androidx.core.view.ViewCompat.setOnApplyWindowInsetsListener (android .view.View, androidx.co re.view.OnApplyWindowInsetsListener) (ViewCompat. java: 2421) 2020-03-14 22: 54: 12.326 5972-5972 / com.example.plasmavietiles I / art: at android .view.ViewGroup androidx.appcompat. app.AppCompatDelegateImpl.createSubDecor () (AppCompatDelegateImpl. java: 779) 2020-03-14 22: 54: 12.326 5972-5972 / com.example.plasmavietiles. () (AppCompatDelegateImpl. java: 659) 2020-03-14 22: 54: 12.326 5972-5972 / com.example.plasmavietiles I / art: at void androidx.appcompat.app.AppCompatDelegateImpl.setContentView (int) (AppCompatDelegate . java: 552) 2020-03-14 22: 54: 12.326 5972-5972 / com.example.plasmavietiles I / art: at void androidx.appcompat.app.AppCompatActivity.setContentView (int) (AppCompatActivity. java : 161) 2020-03-14 22: 54: 12.326 5972-5972 / com.example.plasmavietiles I / art: at void com.example.plasmavietiles.MainActivity.onCreate (android .os.Bundle) (MainActivity. java: 58) 2020-03-14 22: 54: 12.326 5972-5972 / com.example.plasmavietiles I / art: at void android .app.Activity.performCreate (android .os.Bundle) (Activity. java: 6679) 2020-03-14 22: 54: 12.326 5972-5972 / com.example.plasmavietiles I / art: void android .app.Instrumentation.callActivityOnCreate (android .app.Activity, android .os.Bundle) (Инструментарий. java: 1118) 2020-03-14 22:54: 12.326 5972-5972 / com.example.plasmavietiles I / art: at android .app.Activity android .app.ActivityThread.performLaunchActivity (android .app.ActivityThread $ ActivityClientRecord, android .content.Intent) (ActivityThread. java: 2618) 2020-03-14 22: 54: 12.326 5972-5972 / com.example.plasmavietiles I / art: void android .app. ActivityThread.handleLaunchActivity (android .app.ActivityThread $ ActivityClientRecord, android .content.Intent, java .lang.String) (ActivityThread. java: 2726) 2020-03-14 22: 54: 12.326 5972 -5972 / com.example.plasmavietiles I / art: at void android .app.ActivityThread.-wrap12 (android .app.ActivityThread, android .app.ActivityThread $ ActivityClientRecord, android .content.Intent , java .lang.String) (ActivityThread. java: - 1) 2020-03-14 22: 54: 12.326 5972-5972 / com.example.plasmavietiles I / art: at void android .app. ActivityThread $ H.handleMessage (android .os.Message) (ActivityThread. java: 1477) 2020-03-14 22: 54: 12.326 5972-5972 / com.example.plasmavietiles I / art: at void android .os.Handler.dispatchMessage (android .os.Message) (Обработчик. java: 102) 2020-03-14 22: 54: 12.326 5972-5972 / com.example.plasmavietiles I / art: at void android .os.Looper.l oop () (Looper. java: 154) 2020-03-14 22: 54: 12.326 5972-5972 / com.example.plasmavietiles I / art: at void android .app.ActivityThread.main (java .lang.String []) (ActivityThread. java: 6119) 2020-03-14 22: 54: 12.326 5972-5972 / com.example.plasmavietiles I / art: at java .lang.Object java .lang.reflect.Method.invoke! (java .lang.Object, java .lang.Object []) (Метод. java: - 2) 2020-03-14 22: 54: 12.326 5972-5972 / com.example.plasmavietiles I / art: at void com. android .internal.os.ZygoteInit $ MethodAndArgsCaller.run () (ZygoteInit. java: 886) 2020-03-14 22: 54: 12.326 5972-5972 / com.example.plasmavietiles I / art: at void com. android .internal.os.ZygoteInit.main (java .lang.String []) (ZygoteInit. java: 776) 2020-03-14 22: 54: 13.956 5972-5983 / com .example.plasmavietiles I / art: Частичная параллельная разметка фона G C освобождено 21 (800B) объектов AllocSpace, 0 (0B) объектов LOS, 2