我试图通过编辑androidmanifest.xml文件来改变我的默认/main/startup(不管你叫它什么)活动。我所做的只是改变了android:name属性。然而,这完全破坏了整个应用程序。当我试图安装它失败和读取。
安装错误:INSTALL_PARSE_FAILED_NO_CERTIFICATES
当我试图把它改变回以前的状态时,它仍然给我同样的错误…我做了什么?
我试图通过编辑androidmanifest.xml文件来改变我的默认/main/startup(不管你叫它什么)活动。我所做的只是改变了android:name属性。然而,这完全破坏了整个应用程序。当我试图安装它失败和读取。
安装错误:INSTALL_PARSE_FAILED_NO_CERTIFICATES
当我试图把它改变回以前的状态时,它仍然给我同样的错误…我做了什么?
当前回答
首先,试着这样做:
去Gradle脚本→build . Gradle (module:app)→然后你必须改变(minSdkVersion)的值。例如,如果您使用26,您可以尝试降低值,如(minSdkVersion 20) 那就试试(现在同步)。
其他回答
对我来说,简单但愚蠢的解决方法是安装JRE和JDK。
我开始了一个新的Kotlin项目,安装了一个新的Android Studio的工作任务。我试图构建默认模板模拟电话,并得到了给定的错误。
我做了以下事情:
安装最新版本的JRE和JDK 打开CMD并执行java -version以确保已安装。它返回一个有效的版本消息。 重新启动Android Studio并加载我的项目 点击播放按钮安装到我的模拟设备。 一切正常。
另一种得到这个错误的方法是在macOS上使用ant构建,并在应用程序的源树中有一个Finder图标文件(icon \r)。它似乎jarsigner不能处理文件名中的回车,尽管它会声称签名是有效的,如果你-验证APK,它总是导致APK不会安装在设备上。具有讽刺意味的是,谷歌驱动器查找器插件是Finder图标文件的一个很好的来源。
解决方案是在文件集中使用这样的说明符排除违规文件(这些文件在APK中是无用的):
<exclude name="**/Icon " />
这是因为之前生成的版本和当前版本在v1(jar签名)和v2(完整的APK签名)之间的签名版本有冲突,
在生成签名APK对话框中修正正确的签名版本
你也可以检查
项目结构->默认配置->签名配置
在你添加所有你需要的东西之后
我在JetBrains Rider IDE中遇到了这个问题。
完整的错误
INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed to collect certificates from /data/app/vmdl1252907876.tmp/base.apk: Attempt to get length of null array .日志含义
这个问题是使用JDK8造成的。切换到JDK11解决了这个问题。