无法从您的 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 包装器
“从您的主线程调用它可能会导致死锁和/或 ANR,同时从 GoogleAuthUtil(Android 中的 Google Plus 集成)获取 accessToken”
Android Studio Gradle:请从您的构建脚本中删除 `jcenter()` Maven 存储库的使用/JCenter 已结束生命周期
有没有人成功地将您的 ionic cordova Hybrid 应用程序从 android 版本 9.x 升级到 android Cordova 版本 10.x