应用程序未安装,软件包似乎已损坏。

8

我有一个使用React Native创建的应用程序。我正在尝试在我的设备上安装该应用程序时出现错误:“未安装应用程序-包似乎已损坏”。

原因是什么?我尝试了以下方法来构建apk:

gradlew assembleRelease


你在 build.gradle 中设置了应用签名吗? - Henry
2
我正在生成一个未签名的apk。 - Linu Sherin
然后签名,参见https://dev59.com/73DXa4cB1Zd3GeqP_l4f#15743425 - Henry
1
那我需要生成一个已签名的APK文件才能安装到设备上吗? - Linu Sherin
3个回答

4

按照以下步骤操作...我亲测有效

前提条件 - 必须拥有一个keystore文件,如果没有,请打开cmd运行keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000,按照指示操作即可。完成后,您将拥有一个keystore文件。现在请按照以下步骤操作:

1. 在 Windows 中输入cd android,然后运行gradlew assembleRelease

2. 在此位置找到APKandroid/app/build/outputs/apk/release/app-release-unsigned.apk

3. 复制该APK文件到jdk安装目录下的bin文件夹中(对于我来说目录是C:\Program Files\Java\jdk1.8.0_181\bin) [基本上,在这一步中,我们试图进入与 jarsigner 相同的目录]

4. 同样地,将你的keystore文件复制到此(C:\Program Files\Java\jdk1.8.0_181\bin)目录中。

5. 现在以管理员模式打开cmd并运行cd C:\Program Files\Java\jdk1.8.0_181\bin

6. 现在运行 jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <<你的keystore文件名>> <<你的apk文件名>> alias_name

现在,您有一个apk文件,并且可以在此处找到已签名的apk文件:cd C:\Program Files\Java\jdk1.8.0_181\bin。运行它,现在应该安装成功了。


1
这个完美地运行了!谢谢。但是,为什么它没有按照 Facebook 的方式工作,这些额外的步骤是什么原因? - Peter Moses
他们因为某些原因跳过了几个步骤,最好由他们自己知道。 - kumar kundan
1
在 MacOS 上怎么样? - Chanrithisak Phok

3

我的手机上已经安装了这个应用程序的一个版本,这就是为什么我没能成功安装的原因。 一旦我删除了这个应用程序并重新安装apk文件,一切都顺利了。


-4
这将有所帮助:- 在最新的Android Studio上
转到“构建”->“构建Apk(s)”。
创建apk后,您将看到如下对话框。
单击“定位”,并在手机上安装它。

1
你知道这是一个React Native的问题吗? - Peter Moses

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