我无法在Quasar中构建android应用程序aab格式和api 30



我没有太多经验。我正在尝试为android api 30构建一个aab应用程序。我能看看格雷德尔和科多瓦的版本吗?

我尝试在这里使用Cordova版本:https://cordova.apache.org/announcements/2021/07/20/cordova-android-10.0.0.html?

我正在默认的类星体项目上尝试类星体3.2.4节点16.13.1java版本";17.0.1〃;2021-10-19升安卓工作室2020.3.1。补丁3-sdk 14-31

但构建仍然失败。

有人能告诉我一个可行的程序吗?

控制台屏幕截图:https://ibb.co/hdxyHGf

我自己为此挣扎了几天。我会尽量详细地回答。也许你会发现一些依赖于你的应用程序的问题,但至少你会有一些问题需要解决。

据我所知,您有一个使用cordovaquasar应用程序,并且您希望构建Android应用程序捆绑包(.aab)文件以将其发布到Google Play Store,因为现在play store只接受.aab文件。

首先quasar作为一个框架与此无关。Quasar框架只是构建您的web应用程序,构建输出存储在src-cordova/www文件夹中。是否使用Quasar v1 or v2并不重要。

Cordova是一个框架,它将创建整个项目结构(android/iOS),也称为Cordova平台,并使用命令行运行特定的构建工具来构建项目(gradle cli/xcode cli)。

要为Google Play Store构建.aab文件,还需要以Android API level 30为目标。支持android API level 30的Cordova版本是version 10。我正在使用cordova-android-v10.0.0

要安装cordova-android-v10,首先你需要删除你现在拥有的android平台,即src-cordova/platforms/android文件夹。之后在src-cordova文件夹中导航。并使用以下命令cordova platform add android@10.0.0安装cordova android平台v10。

现在,您需要使用gradle构建android项目。Cordova android v10需要gradle v7.1.1

要查找有关cordova android v10.0.0及其与gradle等其他工具的兼容版本的更多信息,您可以查看以下链接:https://cordova.apache.org/announcements/2021/07/20/cordova-android-10.0.0.html

您可以从以下链接下载gradle v7.1.1:https://gradle.org/releases/.我建议下载complete软件包,即gradle-v7.1.1-all.zip

如果您使用的是windows,请解压缩C:/Gradle/gradle-v7.1.1中的zip文件。如果您使用的是macOS,我认为您应该在/Library/Gradle/gradle-v7.1.1中提取它。之后,您需要添加GRADLE_HOME环境变量(GRADLE_HOME=C:/Gradle/gradle-v7.1.1),并将渐变bin目录添加到PATH,即PATH=...,%GRADLE_HOME%bin

检查您是否已在终端中使用gradle -v命令成功安装渐变,以查看渐变版本

现在你应该可以用gradle构建android cordova项目了。转到src-cordova/aplatforms/android并执行gradle build。如果一切正常,您可以转到根项目文件夹并执行npm run build:android

如果一切通过,您将在dist/cordova/android输出文件夹中看到app-release.aab文件。

重要信息:我想指出几点注意事项,它们将导致构建失败。

  1. 首先是cordova android API级兼容性。Cordovav10.0.0支持从API level 22API level 30。您需要在您的cordovaconfig.xml中添加以下xml:
<platform name="android">
<!-- other settings -->

<preference name="android-minSdkVersion" value="22" />
<preference name="android-targetSdkVersion" value="30" />

<!-- other settings -->
</platform>

以下链接为您提供android cordova及其版本支持的API级别:https://cordova.apache.org/docs/en/latest/guide/platforms/android/index.html#requirements-并支持

如果不添加minSdkVersion 22,则MultiDex支持将出现问题。这是因为API 22级(Android 5.1)默认启用多DEX文件应用程序。如果你的最低目标低于22,你会有例外,比如:

java.lang.RuntimeException: Unable to instantiate application android.support.multidex.MultiDexApplication

有一个变通办法,但我不会在这里讨论。您可以在此链接上阅读更多信息:https://developer.android.com/studio/build/multidex#mdex-前1

  1. 其次,如果尚未生成keystore文件,则需要生成该文件,并配置build.json文件。在build.json文件中,您可以定义releasedebug的输出包。在我的项目中,我设置了它们:debug输出apkrelease输出aab文件,还可以定义keystore文件路径

您可以在以下链接上找到有关build.json的更多信息:https://cordova.apache.org/docs/en/latest/guide/platforms/android/index.html#using-buildjson

  1. 第三件事是主观的,但我想在这里指出,因为我认为这可能会有所帮助。第三件事是插件。许多插件都是旧的(超过3年),可能无法使用此新设置,因为在尝试使用gradle build命令构建它们时出错。我在我的应用程序(cordova-plugin-qrscanner)中使用了qrscanner插件,由于Androidx和支持库的原因,该插件未能构建。您可以找到有关此问题的更多信息https://github.com/bitpay/cordova-plugin-qrscanner/issues/360.最后,我使用了新的androidx-qrscanner插件
# inside src-cordova folder
cordova plugin add cordova-plugin-qrscanner-androidx --save
cordova plugin add cordova-plugin-androidx-adapter --save

如果您遇到这样的问题,请删除src-cordova/plugins文件夹,然后在src-cordova文件夹中执行cordova build android以重新安装所有插件。如果出现错误,请尝试为失败的插件安装替换插件。

很抱歉回答太长,但这类问题很难解释,尤其是当使用使用框架的框架时。。。。

相关内容

最新更新