问题解析发布apk文件创建与cordova在android手机

huwehgph  于 2022-11-15  发布在  Android
关注(0)|答案(1)|浏览(166)

我正在使用Cordova(版本11)创建一个应用。当我在模拟器上运行它或在我的设备上启动它时,一切都正常。但是,当我创建发布版本时,APK文件无法安装在我的设备上。它显示,“解析包时出现问题。”
下面是我的AndroidManifest.xml文件:

<?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="30" android:compileSdkVersionCodename="11" android:hardwareAccelerated="true" package="com.mpi.calculator" platformBuildVersionCode="30" platformBuildVersionName="11">
    <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <application android:appComponentFactory="androidx.core.app.CoreComponentFactory" android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true">
        <activity android:configChanges="keyboard|keyboardHidden|locale|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:exported="true" android:label="@string/activity_name" android:launchMode="singleTop" android:name="com.mpi.calculator.MainActivity" android:theme="@style/Theme.AppCompat.NoActionBar" android:windowSoftInputMode="adjustResize">
            <intent-filter android:label="@string/launcher_name">
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
</manifest>

我不知道如何开始解决这个问题。我可以根据需要发布额外的信息。任何帮助都将不胜感激。

mf98qq94

mf98qq941#

所以,我将在这里回答我自己的问题,以防其他人通过网络搜索找到这个页面。我遇到的问题是由于我生成apk文件的方式。我使用的命令

cordova build android --release -- --packageType=apk

这是生成“app-release-unsigned.apk”文件,这给我的错误。经过大量的在线搜索,看到每个人都使用“build.json”文件沿着命令

cordova build android --release --buildConfig

我决定尝试一下。我创建了一个JSON文件,格式如下:

{
    "android": {
        "debug": {
            "keystore": "./myapp.keystore",
            "storePassword": "*******",
            "alias": "MyApp",
            "password" : "******",
            "keystoreType": "jks"
        },
        "release": {
            "keystore": "./myapp.keystore",
            "storePassword": "******",
            "alias": "MyApp",
            "password" : "******",
            "keystoreType": "jks",
            "packageType": "apk"
        }
    }
}

并运行命令,它工作了。“buildiderjson”文件需要在根 cordova 项目文件夹中,keystore文件也是如此。
为了生成“keystore”文件,我使用了以下命令

keytool -genkey -v -keystore myapp.keystore -keyalg RSA -keysize 2048 -sigalg SHA1withRSA -validity 9000

它会要求你输入一个密码,然后再次输入相同的密码,然后输入一堆信息,比如你的名字,你的组织的名称和它的位置。然后它会要求你输入“别名”的密码,它可以不同于密钥库的密码,然后再次输入“别名”的密码。这两个密码就是上面JSON文件中的内容。
我仍然不确定如何更改发布文件的名称,但现在这并不重要。

相关问题