无法从您的 Ionic 应用生成 Android App Bundle(没有 Android Studio)

Posted

技术标签:

【中文标题】无法从您的 Ionic 应用生成 Android App Bundle(没有 Android Studio)【英文标题】:unable to generating an Android App Bundle from your Ionic app (without Android Studio) 【发布时间】:2020-08-05 10:09:35 【问题描述】:

这主要是 build fail for android 的重复,但目前还没有答案,我的情况略有不同,所以再放一次。

在我的情况下,我能够正确构建 apk,并且我想在命令成功后创建一个应用程序包

ionic cordova build android --prod --release 通过运行这个 cmd 我可以生成 apk。

之后我要去/platform/android 并运行./gradlew bundle ,在这里我得到了这个错误

The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.


FAILURE: Build failed with an exception.

* What went wrong:
Task 'bundle' is ambiguous in root project 'android'. Candidates are: 'bundleAppClassesDebug', 'bundleAppClassesDebugAndroidTest', 'bundleAppClassesDebugUnitTest', 'bundleAppClassesRelease', 'bundleAppClassesReleaseUnitTest', 'bundleDebug', 'bundleRelease'

如何解决?

【问题讨论】:

【参考方案1】:

对于那些最终发现--packageType=bundle 标志似乎不起作用的人,请密切注意注释here:

注意:您应该使用 double -- 来表示这些是特定于平台的参数,例如:

cordova run android --release -- --keystore=../my-release-key.keystore --storePassword=password --alias=alias_name --password=password --packageType=bundle.

注意--release 后面的空--。以下假设您已经在 build.json 中配置了密钥库和密码:

cordova build android --packageType=bundle // flag is silently ignored, generates apk
cordova build android -- --packageType=bundle // flag works, generates aab

【讨论】:

太棒了!谢谢!很容易被忽视 谢谢!【参考方案2】:

Ionic 具有内置命令行来生成 .aab 格式。

AAB:

ionic cordova build android --prod --release -- -- --packageType=bundle
        

它会在 android/app/build/outputs/bundle/release 自动生成 .aab

APK:

ionic cordova build android --prod --release 

愿它对某人有所帮助。 谢谢

【讨论】:

【参考方案3】:

在其他答案中,您似乎可以运行:

./gradlew bundleRelease

就我而言,它不起作用。 我解决了为 ionic 升级 android 平台版本的问题。

ionic cordova platform rm android
ionic cordova platform add android@8
ionic cordova build android --prod --release

之后,如果你进入platforms\android文件夹,你就可以做

./gradlew bundle

我没有检查两个 android 版本的 gradle 版本,但我想它已经改变了。

问候,文森佐

【讨论】:

【参考方案4】:

我通过更新 build.json 并运行命令 cordova run android --release! 成功构建了它!

我所做的是:

    将 Gradle 从 v6.7.1 升级到 v7.3.3(Windows 版本,下载 .zip 并设置“路径”)。 build.json 添加,"packageType": "apk"

构建app-release.apk成功:

【讨论】:

以上是关于无法从您的 Ionic 应用生成 Android App Bundle(没有 Android Studio)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用从您的应用程序外部提供的“文本选择”的新 Android M 功能?

Ionic Angular & Android 无法在 Android Studio 或您的系统上找到已安装的 Gradle 版本以安装 gradle 包装器

无法从您的配置中加载“paypal”部分

“从您的主线程调用它可能会导致死锁和/或 ANR,同时从 GoogleAuthUtil(Android 中的 Google Plus 集成)获取 accessToken”

Android Studio Gradle:请从您的构建脚本中删除 `jcenter()` Maven 存储库的使用/JCenter 已结束生命周期

有没有人成功地将您的 ionic cordova Hybrid 应用程序从 android 版本 9.x 升级到 android Cordova 版本 10.x