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

unable to generating an Android App Bundle from your Ionic app (without Android Studio)

这主要是 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'

如何解决?

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

./gradlew bundleRelease

在我的情况下它不起作用。 我解决了升级 android 离子平台版本的问题。

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

之后,如果您进入 platforms\android 文件夹,您就可以执行

./gradlew bundle

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

此致文森佐

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 

希望对某人有所帮助。 谢谢

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

Note: You should use double -- to indicate that these are platform-specific arguments, for example:

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

我通过更新 build.json 和 运行 命令 cordova run android --release!

成功构建了它

我做的是:

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

构建应用-release.apk成功:

我的要求与最初的问题不同,但这对某些人来说仍然有用。 升级 Cordova 之后,下面的构建命令生成了一个 .aab 文件,而在更新之前它生成了一个 .apk 文件。我们的构建管道是为签署 APK 文件而设置的,所以我想将 APK 设为默认。

$ ionic cordova build android --prod --release

当我从 cordova 8.x.x 升级到 10.x.x 此命令默认生成一个 .aap 文件

添加 -- --packageType=apk 无效。

我必须在根 cordova 应用程序目录中创建一个 build.json,其中包含以下内容:

{
    "android": {
        "debug": {
            "packageType": "apk"
        },
        "release": {
            "packageType": "apk"
        }
    }
}

这很完美。