无法解析类 targetSdkVersion。

9
我们使用Microsoft Azure Pipelines来构建Ionic应用程序,包括ios和android。不幸的是,在构建android应用时,我们遇到了以下错误。
FAILURE: Build failed with an exception.

* Where:
Build file '/home/vsts/work/1/s/android/capacitor-cordova-android-plugins/build.gradle' line: 21

* What went wrong:
Could not compile build file '/home/vsts/work/1/s/android/capacitor-cordova-android-plugins/build.gradle'.
> startup failed:
  build file '/home/vsts/work/1/s/android/capacitor-cordova-android-plugins/build.gradle': 21: unable to resolve class targetSdkVersion 
   @ line 21, column 26.
             targetSdkVersion targetSdkVersion = project.hasProperty('targetSdkVersion') ? rootProject.ext.targetSdkVersion : 29

奇怪的是,几天前它还没有任何问题。 用于生成APK的命令。

sudo npx jetify

sudo ionic capacitor sync android

cd android && gradle wrapper && sudo ./gradlew assembleRelease `//this is where it fails`
2个回答

32
确实很奇怪。我也遇到了同样的问题,但我找到了一个可行的解决方案。将以下行替换 targetSdkVersion targetSdkVersion = project.hasProperty('targetSdkVersion') ? rootProject.ext.targetSdkVersion : 29targetSdkVersion project.hasProperty('targetSdkVersion') ? rootProject.ext.targetSdkVersion : 29 可以解决问题,这也比赋值更有意义。
编辑:显然这是正确的修复方法,在电容器存储库的最新拉取请求中也是如此:https://github.com/ionic-team/capacitor/pull/4788 或者修复 https://github.com/ionic-team/capacitor/pull/4788/commits/250fdcf03be6510dd629a91a98b5220e14d31664

1
谢谢您的评论!我搜索了文本,发现它在node_modules目录中。不认为这是替换行的正确方式...或者说它是吗? - shAkur
谢谢!我用那个解决了我的问题! - Benoît Mignault
我解决了我的问题! - Hansel

0
Ionic应用程序在capacitor-android文件夹中生成一些文件(如果您使用capacitor)。在此文件夹中,打开manifests/AndroidManifest.xml并在没有android:exported的地方添加android:exported="true"。 问题是因为Capacitor尚未在Android构建脚本的实现中添加此新要求。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接