Приложение вылетает при загрузке из Google Play - PullRequest
0 голосов
/ 17 апреля 2019

Я только что создал и развернул приложение в Google Play. Он работал хорошо, когда я запускал его через Android Studio, но теперь он вылетает, когда я загружаю его из Google Play. Поскольку это мой первый раз, я даже не знаю, как просмотреть отчет о сбое / трассировку стека приложения, которое было загружено из Google Play. Я ценю любую помощь.

UPDATE

Итак, я получил трассировку стека для APK. Это говорит мне, что мой TopImageFragment.java класс не может создать мой MemeViewModel.java класс. Я понятия не имею, почему это дает эту ошибку. Все отлично работает как есть. Похоже, что Proguard действительно постепенно сворачивает важный класс:

2019-04-18 00:46:32.062 8099-8099/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.ozbek.onur.memegenerator, PID: 8099
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ozbek.onur.memegenerator/com.ozbek.onur.memegenerator.MainActivity}: java.lang.RuntimeException: Cannot create an instance of class com.ozbek.onur.memegenerator.MemeViewModel
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2853)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2928)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1609)
        at android.os.Handler.dispatchMessage(Handler.java:105)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6703)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:769)
     Caused by: java.lang.RuntimeException: Cannot create an instance of class com.ozbek.onur.memegenerator.MemeViewModel
        at android.arch.lifecycle.ViewModelProvider$NewInstanceFactory.create(ViewModelProvider.java:155)
        at android.arch.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:210)
        at android.arch.lifecycle.ViewModelProvider.get(ViewModelProvider.java:134)
        at android.arch.lifecycle.ViewModelProvider.get(ViewModelProvider.java:102)
        at com.ozbek.onur.memegenerator.TopImageFragment.onActivityCreated(TopImageFragment.java:89)

Ответы [ 3 ]

1 голос
/ 23 апреля 2019

Проверьте, есть ли у вас файлы Java, у которых нет модификатора доступа. По моему опыту, просто объявление класса без публичного или частного модификатора вызывает эту проблему.

0 голосов
/ 18 апреля 2019

Такая проблема обычно возникает, потому что ваше приложение, развернутое в Google Play, было сборкой релиза, и proguard минимизировало ваше приложение и удалило класс, которого не должно было быть.При сборке в Android Studio это отладочная сборка, которая не минимизируется.Вот почему вы видите сбой только в Google Play.

Перед загрузкой в ​​Google Play проверьте ваш выпущенный APK-файл на устройстве и посмотрите logcat на наличие ошибки.Это должно сказать вам, какой класс был удален по ошибке, и вы можете исправить это, указав пользовательские правила Proguard и повторив попытку, пока приложение не перестанет падать.Затем, когда вы загружаете в Google Play, у вас все должно быть хорошо.

Вы также можете включить proguard в отладочной сборке, изменив файл build.gradle.Затем, когда вы запускаете Android Studio, вы должны увидеть ту же ошибку, что и в Google Play.

Еще одна альтернатива - вы можете отключить proguard / minification в вашей сборке релиза.Однако это не рекомендуется, потому что ваше приложение будет больше, чем нужно.

0 голосов
/ 17 апреля 2019

В моем предложении держите телефон подключенным к ПК / ноутбуку во время загрузки и попытайтесь открыть его.Используйте Logcat на Android Studio, он в основном имеет все ответы или, по крайней мере, ошибки, которые приводят к ответам.попробуйте разместить здесь журналы ошибок, чтобы мы могли на них правильно взглянуть.

1) Попробуйте ту же версию приложения, которую вы развернули в магазине Google Play, протолкнув ее через Android-студию, и посмотрите, не исчезла ли проблема.!

2) Если происходит то же самое, тогда установите точку останова на точке входа (метод onCreate в большинстве случаев в классе MainActivity) вашего приложения и перейдите к параметру Run-> Debug «YourProject» и выполните пошаговую отладку.для каждой выполняемой команды и посмотрите, какая из них вызывает проблемы.

...