我试图通过编辑androidmanifest.xml文件来改变我的默认/main/startup(不管你叫它什么)活动。我所做的只是改变了android:name属性。然而,这完全破坏了整个应用程序。当我试图安装它失败和读取。

安装错误:INSTALL_PARSE_FAILED_NO_CERTIFICATES

当我试图把它改变回以前的状态时,它仍然给我同样的错误…我做了什么?


当前回答

当我试图在运行api v23的手机上安装针对Android N预览构建的Xamarin项目时,我得到了这个错误。解决办法是不要这样做。

其他回答

在更新的Android Studio 3.2+版本中,如果你试图运行发布安装,并且你没有定义任何签名配置,它将显示错误提示,安装将失败。您需要做的是运行调试版本或正确设置签名配置(V1或V2)。

你也可以检查

项目结构->默认配置->签名配置

在你添加所有你需要的东西之后

这是一个丑陋但快速的解决方案:使用JDK 6而不是7。

在阅读了Chloe的回答后,我卸载了JDK 7(目前不需要它)并安装了JDK 6。这就解决了问题。一个更好的解决方案是让ant使用JDK 6(不卸载7)。也许可以改变/设置这个属性:

java .

在当地。属性文件。它在项目目录(根目录)中。

Android不支持JDK 7(只有6或5),所以让ant脚本也使用JDK 6或5可能是一个很好的解决方案。

确保构建变量在Android Studio中被设置为调试(而不是发布)(检查构建变量面板)。

我发现这是由我的JDK版本引起的。

我在使用“ant”时遇到了这个问题,这是由于文档中提到的注意事项:

http://developer.android.com/guide/publishing/app-signing.html#signapp 注意:从JDK 7开始,默认的签名算法已经发生了变化,在对APK签名时需要指定签名和摘要算法(-sigalg和-digestalg)。

我有JDK 7。在我的Ant日志中,我使用-v表示详细信息,它显示出来了

$ ant -Dadb.device.arg=-d -v release install
[signjar] Executing 'C:\Program Files\Java\jdk1.7.0_03\bin\jarsigner.exe' with arguments:
[signjar] '-keystore'
[signjar] 'C:\cygwin\home\Chloe\pairfinder\release.keystore'
[signjar] '-signedjar'
[signjar] 'C:\cygwin\home\Chloe\pairfinder\bin\PairFinder-release-unaligned.apk'
[signjar] 'C:\cygwin\home\Chloe\pairfinder\bin\PairFinder-release-unsigned.apk'
[signjar] 'mykey'
 [exec]     pkg: /data/local/tmp/PairFinder-release.apk
 [exec] Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

我手动对JAR进行了签名并对其进行了zip对齐,但它给出了一个略有不同的错误:

$ "$JAVA_HOME"/bin/jarsigner -sigalg MD5withRSA -digestalg SHA1 -keystore release.keystore -signedjar bin/PairFinder-release-unaligned.apk bin/PairFinder-release-unsigned.apk mykey
$ zipalign -v -f 4 bin/PairFinder-release-unaligned.apk bin/PairFinder-release.apk
$ adb -d install -r bin/PairFinder-release.apk
        pkg: /data/local/tmp/PairFinder-release.apk
Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
641 KB/s (52620 bytes in 0.080s)

我在这里找到了答案。

如何处理INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES不卸载

我只需要卸载它,然后它就工作了!

$ adb -d uninstall com.kizbit.pairfinder
Success
$ adb -d install -r bin/PairFinder-release.apk
        pkg: /data/local/tmp/PairFinder-release.apk
Success
641 KB/s (52620 bytes in 0.080s)

现在我只需要修改build.xml在签名时使用这些选项!

好的,在这里:C:\Program Files\Java\ android-sdk\tools\ant\build.xml

            <signjar
                    sigalg="MD5withRSA"
                    digestalg="SHA1"
                    jar="${out.packaged.file}"
                    signedjar="${out.unaligned.file}"
                    keystore="${key.store}"
                    storepass="${key.store.password}"
                    alias="${key.alias}"
                    keypass="${key.alias.password}"
                    verbose="${verbose}" />