Android APK在发布模式下运行崩溃,但在调试模式下不会。

4
我有一个在Android Studio中构建的应用程序。它以前可以正常运行,并且曾经发布到商店,但由于某些原因,发布版APK在安装后无法运行。通过手机或模拟器运行调试模式没有问题。调试和发布版本都使用相同的密钥库文件。
在发布模式下,APK在打开时立即崩溃。我怀疑这是一个密钥库问题,但不能确定?即使我已经设置了密钥库,调试是否会绕过使用我的密钥库?
还有其他可能尝试的方法吗?
注意:我有另一种口味使用不同的密钥库,那个可以正常工作。

通过USB将手机连接到电脑,打开Android Studio,进入Android Monitor,选择您的设备并查看logcat。 我相信异常已经在那里了,只是等待有人去读它。 Android Studio的logcat甚至可以存储apk。因此,将发布版本发布到您的手机上,然后只需连接即可。 - Grisgram
你使用过 ProGuard 吗? - Bhavishya Prajapati
你在 release 构建中使用了 ProGuard 吗? - Imran Ali
Grisgram.... 把它作为答案发布,我会标记它。这帮助我找到了问题所在。谢谢! - Adam
5个回答

4

你有使用过proguard吗?如果是,我敢肯定这是你的proguard问题。建议在使用之前请阅读proguard指南。


1
你可以在gradle的debug buildType中添加proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'和minifyEnabled true,以检查是否存在proguard问题。 - ElOjcar

4

按照要求提供答案 :)

通过USB将手机连接到电脑,打开Android Studio,进入Android Monitor,选择您的设备并查看logcat。我非常确定异常在那里等待着有人阅读。 Android Studio logcat日志甚至可以存储apk文件。因此,将发布版本发布到您的手机上,然后只需将其连接即可。

谢谢,@Adam


帮了我。我的问题是启动时崩溃的活动没有在清单文件中声明。在日志中清晰地表明了这一点(在仅显示错误的过滤器后)。 - TheLogicGuy

1

1

这不是proguard的问题。我花了将近两个月的时间来解决这个问题,调试版本可以工作,但发布版本无法工作,并且无数次地搞乱了proguard文件。问题出在即时运行上。在删除所有与即时运行有关的引用后,它终于可以工作了。


嘿,除了禁用即时运行之外,我们还需要删除哪些引用?请帮忙! - user2997154

0
在我的情况下,打开发布版 APK 时该应用崩溃了。最好的方法是查看 logcat 以了解错误原因。如果您没有编写任何 Proguard 规则,那么只需转到您的 build.gradle 并将 "minifyEnabled false" 更改为此。这是因为 ProGuard 正在混淆您的 APK,使黑客更难以反向工程化您的 APK。如果您认为混淆不需要,请在 Gradle 配置中更改此设置。就在这里看。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接