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

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

我没有太多的经验。我正在尝试建立一个aab应用程序的android api 30。我可以看看什么地方的版本Gradle和 cordova 必须在?
我尝试在这里使用 cordova 版本:是吗?
我尝试它在默认的类星体项目类星体3.2.4节点16.13.1 java版本“17.0.1”2021-10-19 LTS android studio 2020.3.1.补丁3 - sdk 14-31
但构建仍然失败。
有人能告诉我一个可行的程序吗?
控制台屏幕截图:https://ibb.co/hdxyHGf

4dc9hkyq

4dc9hkyq1#

我为这个问题纠结了几天。我会尽我所能详细地回答它。也许你会发现一些问题取决于你的应用程序,但至少你会有一些工作。
据我所知,您有一个使用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:我建议下载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),并将gradle bin目录添加到PATH,即PATH=...,%GRADLE_HOME%\bin
在终端中使用gradle -v命令检查您是否已成功安装gradle,以查看gradle版本
现在您应该可以使用gradle构建android cordova项目了。转到src-cordova/aplatforms/android并执行gradle build。如果一切正常,您可以转到您的根项目文件夹并执行npm run build:android
如果一切正常,您将在dist/cordova/android输出文件夹中看到app-release.aab文件。

**重要提示:**有几点需要注意,我想指出它们会导致构建失败。

1.首先是cordova android API级别的兼容性。Cordova v10.0.0支持从API level 22API level 30。您需要在cordova config.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-and-support
如果您不添加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-pre-l
1.第二,如果你还没有生成keystore文件,你需要生成build.json文件,并配置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命令。我用qrscanner插件在我的应用程序(cordova-plugin-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来重新安装所有插件。如果弹出错误,尝试安装替换插件来替换失败的插件。
很抱歉回答得太长,但这种问题很难解释,尤其是当使用框架时,使用框架......

相关问题