cordova 无法从您的Ionic应用生成Android应用捆绑包(不使用Android Studio)

ibrsph3r  于 2022-11-15  发布在  Ionic
关注(0)|答案(6)|浏览(276)

这主要是build fail for android的副本,但还没有答案,我的情况略有不同,所以把它再说一遍。
在我的情况下,我能够正确地构建apk,我想在命令成功后创建一个应用程序包
ionic cordova build android --prod --release通过运行此命令,我能够生成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'

如何修复?

rkue9o1l

rkue9o1l1#

对于那些最终发现--packageType=bundle标志似乎不起作用的人,请密切注意下面的注解:
注意:您应该使用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
ymdaylpp

ymdaylpp2#

Ionic有内置的命令行来生成.aab格式。
AAB:

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

它将在android/app/build/output/bundle/release中自动生成.aab文件
APK:

ionic cordova build android --prod --release

希望它能帮助一些人。谢谢

gstyhher

gstyhher3#

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

./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版本,但我想它已经改变了。
此致,文森佐

ercv8c1e

ercv8c1e4#

我通过更新build.json并运行命令cordova run android --release成功地构建了它!
我所做的是:
1.将Gradle从v6.7.1升级到v7.3.3(Windows版本,下载.zip并设置“路径”)。
1.添加,"packageType": "apk"
构建app-release.apk成功:

332nm8kg

332nm8kg5#

我的要求与最初的问题不同,但这对某些人来说可能仍然有用。升级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"
        }
    }
}

这一切都很完美。

4nkexdtk

4nkexdtk6#

这对我很有效,密钥已经生成。

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

相关问题