当前位置: 首页 > 知识库问答 >
问题:

从Google Play下载应用程序时崩溃

廉子民
2023-03-14

我刚刚在Google Play上构建并部署了一个应用程序。当我通过Android Studio运行它时,它运行得很好,但现在当我从Google Play下载它时,它崩溃了。因为这是我第一次,我甚至不知道如何查看从Google Play下载的应用程序的崩溃报告/堆栈跟踪。我感谢所有的帮助。

更新

所以我得到了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个答案

唐运诚
2023-03-14

我的应用程序遇到了同样的问题,它是ProGuard杀死的。因为除非另有说明,否则ProGuard会重命名所有类。所以,在您的情况下,您必须添加

@保持

类名称MemeViewModel之前的注释。

实例

@Keep
class MemeViewModel{
//
//
}
阎元徽
2023-03-14

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

夏季萌
2023-03-14

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

在上传到Google Play之前,请在设备上测试您的发布APK文件,并查看logcat中的错误。这应该会告诉你哪个类被错误删除了,你可以通过指定自定义proguard规则并重试直到应用程序停止崩溃来纠正这个错误。然后,当你上传到谷歌游戏,你应该是好的。

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

另一种选择是,您可以在发布版本中禁用proGuard/缩小。但是不建议这样做,因为您的应用程序会比它需要的大。

 类似资料:
  • 我最近把一个应用程序上传到谷歌play商店,一切正常。我下载了它,并能够注册一个新用户。加载应用程序的主要活动时,应用程序崩溃。 这是我得到的stacktrace: 以前可能有人问过这个问题,但我已经研究了很多次,没有找到解决这个问题的方法。任何帮助都将不胜感激。该应用程序是使用android java和firebase创建的。

  • 我在(unity)应用程序启动期间发生崩溃,只有从Play Store下载应用程序时才会出现。我进行了大量测试,即使在一个空的Unity项目中,我也观察到了这次崩溃。 我有谷歌游戏Firebase 如果我在安装后立即清除应用的存储,崩溃就会消失。 崩溃发生在Android9上,但不是在Android5.1上。如果我在google play控制台上使用不同的项目加载相同的应用程序,则不会发生崩溃(尝

  • 我最近尝试为ListView创建一个自定义行。我试图从教程中完成它,但当我试图更改它时,它崩溃了,以便行与我希望我的应用程序显示的内容一起工作。错误读出在底部。 --------homescreen.xml--------------------- ----------读出错误--------------------------------------------- 04-07 14:06:40.

  • 在我的应用程序中,我在回收商视图中显示项目列表。我为回收商视图中的每个项目创建了两个功能编辑和删除。使用此应用程序,用户可以创建任务列表,可以编辑项目,也可以从回收器视图中删除项目。现在,如果我单击“编辑”,它就可以完美地工作。但是,如果我单击删除选项,则应用程序崩溃,并且消息数组索引在adaper类中因rance异常而崩溃。 这是我的适配器代码。我还提到了 代码中的行 ,其中我遇到了应用程序崩溃

  • 我尝试了太多东西,但每次按下“计算”(hesapla)按钮后,应用程序都会崩溃。 例如: 我应该写什么/做什么? 有一只原木猫; 通用域名格式。ertugrulguleryuzgmail。sdunothesaplama E/AndroidRuntime:致命异常:主java。lang.NumberFormatException:无效的int:“”在java上。整型。java上的invalidit(