无法从您的 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
!
成功构建了它
我做的是:
- 将 Gradle 从 v6.7.1 升级到 v7.3.3(Windows 版本,下载 .zip 并设置“路径”)。
- 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"
}
}
}
这很完美。
这主要是 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
自动生成.aabAPK:
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
!
我做的是:
- 将 Gradle 从 v6.7.1 升级到 v7.3.3(Windows 版本,下载 .zip 并设置“路径”)。
- 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"
}
}
}
这很完美。