【问题标题】:Android Beta app crashes when opening from Playstore (but works otherwise)从 Playstore 打开时,Android Beta 应用程序崩溃(但可以正常工作)
【发布时间】:2014-12-10 15:30:55
【问题描述】:

这里是新开发者。

我最近刚刚完成了我正在开发的应用,并将其作为测试版发布到 Play 商店。在将其发送给我的 beta 测试人员之前,我给自己发送了一个链接,只是想看看它是否有效。当我单击链接并从 Play 商店安装应用程序时,它似乎已经加载到我的设备上。但是当我打开应用程序时,它甚至在打开之前就崩溃了。我收到“很遗憾,应用名称已停止”消息。

为了仔细检查并确保我在发布前的最后一分钟没有搞砸任何事情,我使用 Android Studio 从我的设备上卸载并运行了该应用,它运行良好。

我能想到的唯一可能是我在构建 APK 之前所做的几件事。

首先,在我的 build.gradle 文件中,我在这行代码中插入了“优化”:

buildTypes {
        release {
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

然后在 proguard-rules.pro 我添加了以下内容:

-assumenosideeffects class android.util.Log {
    public static boolean isLoggable(java.lang.String, int);
    public static int v(...);
    public static int i(...);
    public static int w(...);
    public static int d(...);
    public static int e(...);
}
-ignorewarnings

据我所知,“assumenosideeffects”行是为了清除我的日志,这样它们就不会在 Play 商店版本中运行。

我添加了“ignorewarnings”行,因为在构建 APK 时,我收到了 78 个(黄色)警告,所有这些都与 Facebook 有关。但我没有 facebook 集成,甚至从未尝试编写任何代码来集成 facebook。所以我假设添加 ignorewarnings 行不会妨碍应用程序的功能。我弄错了吗?

所以这是我的问题。任何想法可能是什么问题?

非常感谢您的帮助。我从这个社区中受益匪浅,我非常感激:)

编辑

堆栈跟踪如下:

java.lang.RuntimeException: Unable to create application com.offyear.www.offyear.Application: java.lang.IllegalArgumentException: Default constructor for class com.a.lb is not accessible.
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4447)
at android.app.ActivityThread.access$1300(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalArgumentException: Default constructor for class com.a.lb is not accessible.
at com.a.gy.c(Unknown Source)
at com.a.gy.C(Unknown Source)
at com.a.ed.a(Unknown Source)
at com.offyear.www.offyear.Application.onCreate(Unknown Source)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4444)
... 10 more

【问题讨论】:

  • 请发布您收到的崩溃堆栈跟踪信息。
  • 对不起,我不知道在不从 IDE 运行时该怎么做。从设备运行时如何打印堆栈跟踪?
  • 好的,想通了。添加了堆栈跟踪。

标签: android apk beta


【解决方案1】:

好的,不太确定问题的根源是什么,但我终于解决了这个问题——我想我会发布它以防其他人遇到类似的问题。

显然,proguard 代码中的某些东西把事情搞砸了。所以我只是删除了所有的proguard代码,在gradle中将runProguard设置为false并删除了“优化”。

应用安装并从 Google Play 运行之后没有问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    • 2022-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多