java.lang.ClassNotFoundException, возникающая только в обновленных устройствах Samsung с Android 9.0 - PullRequest
1 голос
/ 19 марта 2019

Итак, очевидно, приложение вылетает всякий раз, когда пользователь пытается открыть его на своих устройствах Samsung Galaxy с последним обновлением 9.0.Я протестировал приложение на устройствах с Android 9.0, и оно работает нормально практически на всех устройствах, на которых я его тестировал.Думаю, это проблема Samsung?

Вот следы стека от Play Console:

  java.lang.NoClassDefFoundError: 
  at androidx.fragment.app.FragmentManager.b (FragmentManager.java:3)
  at androidx.fragment.app.FragmentHostCallback.a (FragmentHostCallback.java:3)
  at androidx.fragment.app.FragmentManagerImpl.a (FragmentManagerImpl.java:19)
  at com.google.android.gms.ads.internal.util.ar.a (ar.java:15)
  at androidx.core.widget.AutoSizeableTextView.a (AutoSizeableTextView.java:20)
  at androidx.core.widget.AutoSizeableTextView.run (AutoSizeableTextView.java:8)
Caused by: java.lang.ClassNotFoundException: 
  at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:134)
  at java.lang.ClassLoader.loadClass (ClassLoader.java:379)
  at androidx.appcompat.view.StandaloneActionMode.loadClass (StandaloneActionMode.java:4)
  at java.lang.ClassLoader.loadClass (ClassLoader.java:312)
  at androidx.fragment.app.FragmentManager.b (FragmentManager.java:3)
  at androidx.fragment.app.FragmentHostCallback.a (FragmentHostCallback.java:3)
  at androidx.fragment.app.FragmentManagerImpl.a (FragmentManagerImpl.java:19)
  at com.google.android.gms.ads.internal.util.ar.a (ar.java:15)
  at androidx.core.widget.AutoSizeableTextView.a (AutoSizeableTextView.java:20)
  at androidx.core.widget.AutoSizeableTextView.run (AutoSizeableTextView.java:8)

Выше всех следов стека есть все, что у меня есть в моей игровой консоли, а также информация об устройствах, которые этопроисходит на.Я особенно обеспокоен этой ошибкой, потому что все больше людей будут обновляться до последней версии One UI от Samsung. Вот скриншот из Play Console, показывающий устройства с ошибками

image

По-моему, не удается найти определенный класс?AutoSizeableTextView может быть?В приложении я использую библиотеки androidx, а также тему MaterialComponents.

1 Ответ

0 голосов
/ 19 марта 2019

может быть, правила ProGuard зашли слишком далеко? пожалуйста, отметьте AutoSizeableTextView зависимости (унаследованные в вашем случае) android.support.*. Это может быть проблемой. В качестве альтернативы, что не рекомендуется (и не является решением), вы можете проверить, отсутствует ли у вашего приложения зависимость во время выполнения

private boolean hasMissingClassFoo() {

    try {
        Class.forName("com.your.domain.myClassFoo");
    } catch (ClassNotFoundException x) {
        x.printStackTrace();
        return true;
    }
    return false;
}
...