从Google Play下载时,应用会崩溃

问题描述 投票:0回答:3

我刚刚为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)
android google-play stack-trace
3个回答
1
投票

检查您是否有任何没有访问修饰符的java文件。根据我的经验,只是声明没有公共或私有修饰符的类会导致此问题。


0
投票

在我的建议中,在下载并尝试打开手机时,请将手机连接到PC /笔记本电脑。在Android studio上使用Logcat,它主要有所有答案或至少导致答案的错误。尝试将错误日志放在这里,以便我们正确看看它。

1)尝试通过Android工作室推送您在Google Play商店中部署的相同版本的应用程序,看看问题是否仍然存在!

2)如果同样的事情发生,那么在应用程序的入口点(大多数情况下在MainActivity类中的onCreate方法)上放置断点并转到Run-> Debug“YourProject”选项并对正在执行的每个命令进行逐步调试并查看哪一个引起了问题。


0
投票

这种问题通常会发生,因为部署到Google Play的应用程序是一个发布版本,并且会缩短您的应用程序并删除它不应该拥有的类。当您在Android Studio中构建时,它是一个不会缩小的调试版本。这就是为什么你只能从Google Play看到崩溃的原因。

在上传到Google Play之前,请在设备上测试您的发布APK文件并观看logcat以查找错误。这应该告诉你错误地删除了哪个类,你可以通过指定自定义proguard规则并再次尝试直到应用程序停止崩溃来纠正它。然后,当您上传到Google Play时,您应该会很好。

您还可以通过更改build.gradle文件在调试版本中启用proguard。然后,当您运行Android Studio时,您应该会看到与通过Google Play看到的相同的错误。

另一种方法是,您可以在发布版本中禁用proguard / minification。但是,建议不要这样做,因为您的应用程序将比您需要的更大。

© www.soinside.com 2019 - 2024. All rights reserved.