Ionic Cordova 对新的 Android Bundle 构建感到困惑

Posted

技术标签:

【中文标题】Ionic Cordova 对新的 Android Bundle 构建感到困惑【英文标题】:Ionic Cordova Confused With The New Bundle Building For Android 【发布时间】:2021-10-14 00:16:18 【问题描述】:

您向 Google 提交应用的方式发生了变化,这让我大吃一惊。你现在必须提交一个我试图用 ./gradlew bundle 生成的包,但我总是在下面遇到令人困惑的错误:

* What went wrong:

评估项目 ':app' 时出现问题。

未找到已安装的构建工具。安装 android 构建工具 19.1.0 或更高版本。

尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。 ==================================================== ==============================

2:任务因异常而失败。

出了什么问题: 配置项目“:app”时出现问题。

compileSdkVersion 未指定。请将其添加到 build.gradle

第一个问题令人困惑,因为我安装了构建工具,路径输出是这样的:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:~/Library/Android/sdk/tools:~/Library/Android/sdk/platform-tools

哪个是sdk的正确位置。

我根本没有遵循的第二个错误,在我的 config.xml 中有这个:

然后我 ionic cordova 在运行 gradlew 命令之前构建 android --prod --release。我还查看了 build.gradle 文件,发现如下:

allprojects 
apply from: 'repositories.gradle'
repositories repos

//This replaces project.properties w.r.t. build settings
project.ext 
defaultCompileSdkVersion=29
  defaultBuildToolsVersion="29.0.2" //String
  defaultMinSdkVersion=22 //Integer - Minimum requirement is Android 5.1
  defaultTargetSdkVersion=29 //Integer - We ALWAYS target the latest by default
  defaultCompileSdkVersion=29 //Integer - We ALWAYS compile with the latest by default

所以它告诉它默认为所有项目使用 compile sdk version 29。如果我添加以下内容然后运行 ​​gradlew:

android
    compileSdkVersion=29

我在运行 gradlew 时遇到以下问题:

 Could not find method android() for arguments [build_86qvliu728ivbijvz823o6ru1$_run_closure2@2ba919e2] on root project 'android' of type org.gradle.api.Project.

我完全失去了!

【问题讨论】:

【参考方案1】:

Android SDK 构建工具位于Android/sdk/build-tools

所以我首先建议的是,请检查您是否在环境变量中添加了ANDROID_SDK_ROOT。它必须引用您的 Android SDK 位置 (../Android/sdk)

【讨论】:

以上是关于Ionic Cordova 对新的 Android Bundle 构建感到困惑的主要内容,如果未能解决你的问题,请参考以下文章

Cordova (Ionic) : Splashscreen 只能在 Android 上运行一次

如何使用 Ionic\Cordova 在 android 中设置图标和启动画面

cordova-plugin-ionic-webview - 自定义方案不适用于 Android

Ionic Cordova 不构建 android

如何为 react.cordova、ionic 和 android 设置 ssl 证书?

在 ionic serve/cordova 运行 android 命令后,Ionic CSS 更改不会持久