Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android已签名的APK在尝试上载到生产时显示为未签名的APK_Android_Android Studio - Fatal编程技术网

Android已签名的APK在尝试上载到生产时显示为未签名的APK

Android已签名的APK在尝试上载到生产时显示为未签名的APK,android,android-studio,Android,Android Studio,我在Android Studio 2.3中签署了我的APK(构建->生成签署的APK)。当我试图上传到谷歌播放商店,它显示了错误,我上传了未签名的APK。有人能回答为什么会发生这种情况,以及如何解决它吗?这是谷歌的问题,它是两天前在中发布的,当我在Android Studio 2.3中生成签名的APK时,检查了V1(Jar签名)而不是V2(完整的APK签名),它成功上传了 步骤1)Android Studio,选择查看>工具窗口>终端 gradlew assembleRelease

我在Android Studio 2.3中签署了我的APK(构建->生成签署的APK)。当我试图上传到谷歌播放商店,它显示了错误,我上传了未签名的APK。有人能回答为什么会发生这种情况,以及如何解决它吗?

这是谷歌的问题,它是两天前在

中发布的,当我在Android Studio 2.3中生成签名的APK时,检查了V1(Jar签名)而不是V2(完整的APK签名),它成功上传了

步骤1)Android Studio,选择查看>工具窗口>终端

    gradlew assembleRelease
2) 使用zipalign对齐未签名的APK:

zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk
3) 使用apksigner使用私钥对APK进行签名:

apksigner sign --ks my-release-key.jks my-app-unsigned-aligned.apk --out my-app-release.apk
注意:要使用apksigner工具,必须安装版本24.0.3或更高版本的Android SDK构建工具。您可以使用SDK管理器更新此软件包

4) 验证您的APK是否已签名:

apksigner verify my-app-release.apk

注意:在命令提示符G:\AndroidStudio\Sdk\build tools\25.0.0\

中执行步骤2至4这是因为在进行发布生成时仅使用v2签名

那么v1和v2提到了什么

v1是默认的签名机制,v2是添加的最新机制,验证速度更快。这意味着在Android Nougat(Android 7.0,API级别24)和更高版本上更快地安装/更新v2签名的APK

那你该怎么办

如果您想在不做任何更改的情况下签署应用程序

检查v1(仅限jar签名),这是默认值

如果您想要7.x版本的最新签名和支持

检查v2(完整Apk签名),这也减少了应用程序大小

若你们想让应用程序更小,那个么可以更快地安装,并与所有Android版本兼容

检查v1和v2

PS:仅适用于与Studio签署应用程序,而不是使用管道进行构建


更多参考资料

Android 7.0引入了APK签名方案v2,这是一种新的应用程序签名方案,它提供了更快的应用程序安装时间和更多保护,以防止对APK文件进行未经授权的更改

生成签名apk时,有两个复选框

  • V1(Jar签名)
  • V2(完整的apk签名)
  • 我们有三种选择:

  • 选择V1(对于较旧版本的签名)-apk已成功上载

  • 选择V2(适用于较新版本的签名)-请注意,仅选择此选项将不起作用

  • 选择V1和V2(对于较旧和较新版本)-apk已成功上载

  • 为什么单独选择V2不起作用?

    因为APK签名方案v2是在Android 7.0(Nougat)中引入的要使APK可安装在Android 6.0(棉花糖)和更旧的设备上,在使用v2方案签名之前,应使用JAR签名对APK进行签名。


    有关详细信息,请同时为v1v2签名。它将成功上载。

    如果您达到此目标,请使用Android Studio 3.3,无论您是否选中签名复选框,错误都会不断出现,请尝试手动删除应用程序/构建文件夹


    来源:

    根据所附的屏幕截图,选择V1(Jar签名)和V2(完整APK签名)。它会起作用的


    您能发送错误消息吗?在生成已签名的APK时,当我选中V1(Jar签名)而不是V2(完整APK签名)时,它已成功上载。上载失败您上载了未签名的APK。您需要创建一个签名的APK。我选中了两个复选框:Jar签名和完整的APK签名。这个答案提供了必要的洞察力。为什么在V2可用于签名时只检查V1?你们应该选择V1和V2,接受皮尤斯·库卡迪亚斯的答案。我会被诅咒的,它成功了!但是为什么呢?(我以3.1.3版运行)。谢谢你的解释,但当我同时检查了V1和V2时,谷歌为什么会抱怨?@ScottBiggs当你同时检查时,他们的抱怨是什么?先生,我尝试了上述过程,但我得到了以下错误---你上传了一个未对齐的APK。你需要在你的APK上运行一个zip对齐工具并再次上传它。?@Kapilsoni步骤2缺失。你需要转到SDK->build tools->30.0.2,在那里你会找到zipalignsir,但是如果我通过上面的过程生成了build not installed errors i deviceFirst,生成一个build,然后在APK上应用这些步骤后,必须签名是的,长官,完成了,但我在游戏控制台中遇到了另一个问题——您上载了一个APK,但它没有使用上载证书签名。您必须使用相同的证书。上载证书具有指纹: