离子2:android设备上的APK输出损坏

离子2:android设备上的APK输出损坏,android,bash,ionic2,apk,Android,Bash,Ionic2,Apk,我已经用Ionic 2开发了一个应用程序,并想在Android手机上进行测试。因此,在bash CLI中,我尝试运行多个命令来构建APK,例如: ionic cordova build android --release ionic cordova build --release android ionic cordova build android --release --prod ionic cordova build android --prod 最后,生成了APK文件,但当我在andr

我已经用Ionic 2开发了一个应用程序,并想在Android手机上进行测试。因此,在bash CLI中,我尝试运行多个命令来构建APK,例如:

ionic cordova build android --release
ionic cordova build --release android
ionic cordova build android --release --prod
ionic cordova build android --prod
最后,生成了APK文件,但当我在android手机上传输时,它说应用程序已损坏,无法运行。 有没有办法解决我的问题?谢谢

编辑:我还尝试通过USB连接我的手机<代码>adb设备返回一个列表,显示我的设备确实已连接。然后我运行了
ionic cordova运行android
,但我得到了一个错误:
您的android平台没有api.js

离子信息输出:

global packages:

    @ionic/cli-utils : 1.4.0
    Cordova CLI      : 7.0.0
    Ionic CLI        : 3.4.0

local packages:

    @ionic/app-scripts              : 1.3.7
    @ionic/cli-plugin-cordova       : 1.4.0
    @ionic/cli-plugin-ionic-angular : 1.3.1
    Cordova Platforms               : browser broken ios 4.4.0
    Ionic Framework                 : ionic-angular 3.1.1

System:

    Node       : v6.10.3
    OS         : Windows 10
    Xcode      : not installed
    ios-deploy : not installed
    ios-sim    : not installed
    npm        : 3.10.10

Cordova平台
在您的情况下应该是
android x.x.x

检查
root/platforms/platform.json
它应该是

 {
    "android": "x.x.x"
 }
确保您的
android
文件夹位于正确的位置(
根目录/platforms/android


再次尝试删除并添加平台。

Cordova平台
在您的情况下应该是
android x.x.x

检查
root/platforms/platform.json
它应该是

 {
    "android": "x.x.x"
 }
确保您的
android
文件夹位于正确的位置(
根目录/platforms/android


再次尝试删除和添加平台。

我也面临同样的问题,经过长期的研发,我发现了这个问题。据我所知,问题不在于Android构建,而是您在移动设备上运行的生成的未签名APK。事实上,系统将不允许安装未签名的应用程序,相反,它将显示损坏的消息。因此,无论您是否想将应用程序上载到Google Store,都必须对应用程序进行签名,以便系统至少允许将应用程序安装到移动设备中

请参考以下步骤生成已签名的APK

步骤1:打开命令提示符并转到JDK路径的bin文件夹

步骤2:现在我们需要创建一个新的证书/密钥库,以使用JDK附带的keytool命令生成您的私钥

keytool-genkey-v-keystore my-release-key.jks-keyalg RSA-keysize 2048-有效期10000-别名我的别名

或者,您可以指定要在其中生成密钥库文件的特定驱动器/文件夹

keytool-genkey-v-keystored:\my-release-key.jks-keyalg RSA -keysize 2048-有效期10000-别名我的别名

首先会提示您为密钥库创建密码。然后,回答nice工具的其余问题,完成后,应该在当前或指定的目录中创建一个名为my-release-key.jks的文件

注意:请确保将此文件保存在安全的地方,如果丢失,您将无法向应用程序提交更新

步骤3:要对未签名的APK进行签名,请运行JDK中包含的jarsigner工具:

jarsigner-verbose-sigalg SHA1withRSA-digestalg SHA1-keystore my-release-key.jks android-release-unsigned.apk我的别名

或者使用下面的一个,不要忘记指定keystore.jks和app-release-unsigned.apk文件的确切路径

jarsigner-verbose-sigalg SHA1 with rsa-d igestalg SHA1-keystore D:\IONAL\U apk\my-release-key.jks D:\Ionic…\platforms\android\app\build\outputs\apk\release\app-release-unsigned.apk 我的化名

就这样,您刚刚构建了一个签名的APK。如果需要,重命名APKfile。将其复制到移动设备上并安装

因此,如果您想优化APK,那么我们需要运行zip-align工具,该工具可以在/path/to/Android/sdk/build-tools/VERSION/zipalign中找到。例如,在安装了Android Studio的OS X上,zipalign位于~/Library/Android/sdk/build tools/VERSION/zipalign中:

zipalign-v4-android-release-unsigned.apk HelloWorld.apk

要验证您的APK是否已签名,请运行apksigner。apksigner也可以在与zipalign工具相同的路径中找到:

apksigner验证HelloWorld.apk


我也面临着同样的问题,经过长期的研发,我发现了这个问题。据我所知,问题不在于Android构建,而是您在移动设备上运行的生成的未签名APK。事实上,系统将不允许安装未签名的应用程序,相反,它将显示损坏的消息。因此,无论您是否想将应用程序上载到Google Store,都必须对应用程序进行签名,以便系统至少允许将应用程序安装到移动设备中

请参考以下步骤生成已签名的APK

步骤1:打开命令提示符并转到JDK路径的bin文件夹

步骤2:现在我们需要创建一个新的证书/密钥库,以使用JDK附带的keytool命令生成您的私钥

keytool-genkey-v-keystore my-release-key.jks-keyalg RSA-keysize 2048-有效期10000-别名我的别名

或者,您可以指定要在其中生成密钥库文件的特定驱动器/文件夹

keytool-genkey-v-keystored:\my-release-key.jks-keyalg RSA -keysize 2048-有效期10000-别名我的别名

首先会提示您为密钥库创建密码。然后,回答nice工具的其余问题,完成后,应该在当前或指定的目录中创建一个名为my-release-key.jks的文件

注意:请确保将此文件保存在安全的地方,如果丢失,您将无法向应用程序提交更新

步骤3:要对未签名的APK进行签名,请运行JDK中包含的jarsigner工具:

jarsigner-verbose-sigalg SHA1withRSA-digestalg SHA1-keystore my-release-key.jks android-release-unsigned.apk我的别名

或者使用下面的一个,不要忘记指定keystore.jks和app-release-unsigned.apk文件的确切路径

贾西格