安卓设备上应用安装失败的解决方法

6
我在Android模拟器上成功运行了该应用程序。但是当我尝试在设备上安装时,出现了错误。
CoolPad Note - 运行5.1版本 - 错误信息为“安装应用程序失败” Galaxy A7 - 运行6.0版本 - 错误信息为“解析失败”
我正在使用sqlite数据库、apache csv解析库和Square的sqldelight。
Min Sdk - 19,Max Sdk - 25
我尝试根据此链接提供了所有的uses-permission: link 我已经解锁了手机上的开发人员选项并启用了从未知来源安装的选项,但仍然无法安装该应用程序。在同一部手机上,我可以安装一个简单的android应用程序。因此,问题出在包或代码上。请帮忙看一下。
由于这两个手机的USB均不工作,所以我通过蓝牙发送apk文件,然后在手机中使用软件包安装器进行安装。如何从手机获取安装日志?
该应用程序有4个表单并使用了碎片。如果需要,我可以上传apk文件。

您是尝试安装应用程序的签名版本还是未签名版本?正在使用ProGuard吗?您是否调查过是否需要在proguard.txt中进行某种与csv解析器相关的更改? - statosdotcom
我尝试了有符号和无符号两种方式,但都失败了。我正在使用默认的ProGuard设置。我会研究一下这个问题。 - J.Krishna
如果您也尝试了unsigned,那么混淆和proguard.txt出现问题的可能性就较小了,因为这通常用于已签名的发布版本(或者您也对debug版本进行了混淆吗?)。我认为值得尝试一种不同的apk传输方式,例如使用电子邮件或甚至FTP,以确保蓝牙没有以某种方式破坏您的apk。商店中有非常好用且简单的Android FTP服务器,它们可以在您没有USB时非常有用(很抱歉,您的USB配置错误了吗?尝试过MTP了吗?)。 - statosdotcom
2个回答

11

我曾经遇到过类似的问题。对我来说,问题出在Android Studio(版本2.3.1)中的APK签名方案v2选项上: https://developer.android.com/about/versions/nougat/android-7.0.html#apk_signature_v2

当我选择使用签名版本v2来签署我的apk时,我可以在LG Nexus 5X(android 7.1.1)上下载和安装我的apk。但是在Motorola Moto G3(android 5.1)上,我会看到“安装失败”的提示。

通过在签署应用程序时同时选择签名版本v1和v2,这个问题得到了解决,我可以在两台手机上下载和安装apk。

希望这能帮助你和其他遇到同样问题的人。

enter image description here


2
选择两个签名对我来说确实起作用了,但我不知道原因。 - J.Krishna

3

如果您使用Galaxy A7手机。 您可以在拨号应用程序(名称为“电话”)中点击*#9900#。 您可以找到“运行DUMPSTATE / LOGCAT”并点击它。 然后点击“复制到SD卡(包括CP RAMDUMP)”。 您可以在MyFiles应用程序中找到“log”文件夹。


这是很好的信息,如果属实的话(我没有验证)。并且可以肯定地作为正确答案回答OP的问题,因为他说:“如何获取安装日志”。恭喜。 - statosdotcom
我获得了logcat的转储,并得到了这个错误:该包不允许DTS。这类似于此处的问题[链接](https://stackoverflow.com/questions/37815875/app-works-on-emulator-but-not-on-real-device-both-api-23)。无法确定错误。 - J.Krishna

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