我没有太多的经验。我正在尝试建立一个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
1条答案
按热度按时间4dc9hkyq1#
我为这个问题纠结了几天。我会尽我所能详细地回答它。也许你会发现一些问题取决于你的应用程序,但至少你会有一些工作。
据我所知,您有一个使用
cordova
的quasar
应用程序,并且您希望构建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
),并将gradlebin
目录添加到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 22
到API level 30
。您需要在cordovaconfig.xml
中添加以下xml:以下链接为您提供了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,您将遇到如下例外:有一个解决办法,但我不会在这里进入它。你可以阅读更多关于这个链接:https://developer.android.com/studio/build/multidex#mdex-pre-l
1.第二,如果你还没有生成
keystore
文件,你需要生成build.json
文件,并配置build.json
文件。在build.json
文件中,你可以定义release
和debug
的输出包。在我的项目中,我已经设置了它们:debug
用于输出apk
,release
用于输出aab
文件,您还可以定义keystore
文件路径。有关
build.json
的更多信息,请访问以下链接:https://cordova.apache.org/docs/en/latest/guide/platforms/android/index.html#using-buildjson1.第三件事是主观的但是我想在这里指出它,因为我认为它可能会有帮助。第三件事是插件。许多插件是旧的(超过3年),可能不会与这个新的设置,由于错误时,试图建立他们与
gradle build
命令。我用qrscanner
插件在我的应用程序(cordova-plugin-qrscanner
)由于Androidx和支持库而无法构建。你可以找到更多关于这个问题的https://github.com/bitpay/cordova-plugin-qrscanner/issues/360。最后我使用了新的androidx qrscanner插件。如果你有这样的问题,删除
src-cordova/plugins
文件夹,并在src-cordova
文件夹中执行cordova build android
来重新安装所有插件。如果弹出错误,尝试安装替换插件来替换失败的插件。很抱歉回答得太长,但这种问题很难解释,尤其是当使用框架时,使用框架......