我试图通过编辑androidmanifest.xml文件来改变我的默认/main/startup(不管你叫它什么)活动。我所做的只是改变了android:name属性。然而,这完全破坏了整个应用程序。当我试图安装它失败和读取。
安装错误:INSTALL_PARSE_FAILED_NO_CERTIFICATES
当我试图把它改变回以前的状态时,它仍然给我同样的错误…我做了什么?
我试图通过编辑androidmanifest.xml文件来改变我的默认/main/startup(不管你叫它什么)活动。我所做的只是改变了android:name属性。然而,这完全破坏了整个应用程序。当我试图安装它失败和读取。
安装错误:INSTALL_PARSE_FAILED_NO_CERTIFICATES
当我试图把它改变回以前的状态时,它仍然给我同样的错误…我做了什么?
当前回答
另一种得到这个错误的方法是在macOS上使用ant构建,并在应用程序的源树中有一个Finder图标文件(icon \r)。它似乎jarsigner不能处理文件名中的回车,尽管它会声称签名是有效的,如果你-验证APK,它总是导致APK不会安装在设备上。具有讽刺意味的是,谷歌驱动器查找器插件是Finder图标文件的一个很好的来源。
解决方案是在文件集中使用这样的说明符排除违规文件(这些文件在APK中是无用的):
<exclude name="**/Icon " />
其他回答
这是一个丑陋但快速的解决方案:使用JDK 6而不是7。
在阅读了Chloe的回答后,我卸载了JDK 7(目前不需要它)并安装了JDK 6。这就解决了问题。一个更好的解决方案是让ant使用JDK 6(不卸载7)。也许可以改变/设置这个属性:
java .
在当地。属性文件。它在项目目录(根目录)中。
Android不支持JDK 7(只有6或5),所以让ant脚本也使用JDK 6或5可能是一个很好的解决方案。
确保构建变量在Android Studio中被设置为调试(而不是发布)(检查构建变量面板)。
这是因为之前生成的版本和当前版本在v1(jar签名)和v2(完整的APK签名)之间的签名版本有冲突,
在生成签名APK对话框中修正正确的签名版本
以我为例,我用MinimumSDK安装了一个比我实际设备的Android版本更大的项目。我用了另一个装置,它解决了。
我的项目MinSDK -> 24
我的手机安卓版本-> 21
当我试图在运行api v23的手机上安装针对Android N预览构建的Xamarin项目时,我得到了这个错误。解决办法是不要这样做。