构建失败错误:如果 (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) 找不到符号

fag*_*ele 3 java android cordova

我尝试在开发后构建我的 ionic 应用程序;但在此过程中出现了以下错误:

C:\incidentApp\platforms\android\app\src\main\java\com\moust\cordova\videoplayer\VideoPlayer.java:123: 错误:找不到符号 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R ) { ^ > 任务 :app:compileDebugJavaWithJavac 符号:变量 R 位置:类 VERSION_CODES C:\incidentApp\platforms\android\app\src\main\java\com\moust\cordova\videoplayer\VideoPlayer.java:124: 错误:找不到符号 dialog.getWindow().getInsetsController().hide(WindowInsets.Type.statusBars()); ^ 符号:变量类型位置:类 WindowInsets C:\incidentApp\platforms\android\app\src\main\java\com\moust\cordova\videoplayer\VideoPlayer.java:124: 错误:找不到符号 dialog.getWindow() .getInsetsController().hide(WindowInsets.Type.statusBars()); ^ 符号:方法 getInsetsController() 位置:类 Window 注意:某些输入文件使用或覆盖已弃用的 API。注意:使用 -Xlint:deprecation 重新编译以获取详细信息。注意:某些输入文件使用未经检查或不安全的操作。注意:使用 -Xlint:unchecked 重新编译以获取详细信息。3 错误

FAILURE:构建失败,出现异常。

任务 :app:compileDebugJavaWithJavac 失败 24 个可操作的任务:1 个已执行,23 个是最新的

  • 出了什么问题:任务 ':app:compileDebugJavaWithJavac' 执行失败。

编译失败;有关详细信息,请参阅编译器错误输出。

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

  • https://help.gradle.org获取更多帮助

BUILD FAILED in 2m 5s c:\incidentApp\platforms\android\gradlew: Command failed with exit code 1 Error output: C:\incidentApp\platforms\android\app\src\main\java\com\moust\cordova\videoplayer\ VideoPlayer.java:123: 错误:找不到符号 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { ^ 符号:变量 R 位置:class VERSION_CODES C:\incidentApp\platforms\android\app\src\main \java\com\moust\cordova\videoplayer\VideoPlayer.java:124: 错误:找不到符号 dialog.getWindow().getInsetsController().hide(WindowInsets.Type.statusBars()); ^ 符号:变量类型位置:类 WindowInsets C:\incidentApp\platforms\android\app\src\main\java\com\moust\cordova\videoplayer\VideoPlayer.java:124: 错误:找不到符号 dialog.getWindow() .getInsetsController().hide(WindowInsets.Type.statusBars()); ^ 符号:方法 getInsetsController() 位置:类 Window 注意:某些输入文件使用或覆盖已弃用的 API。注意:使用 -Xlint:deprecation 重新编译以获取详细信息。注意:某些输入文件使用未经检查或不安全的操作。注意:使用 -Xlint:unchecked 重新编译以获取详细信息。3 错误

FAILURE:构建失败,出现异常。

  • 出了什么问题:任务 ':app:compileDebugJavaWithJavac' 执行失败。

编译失败;有关详细信息,请参阅编译器错误输出。

我已经尝试了一切(删除 android 软件包并重新安装)我可以动手但仍然无法正常工作。

下面是我的build.gradle

 project.ext {
      defaultBuildToolsVersion="29.0.3" //String
      defaultMinSdkVersion=22 //Integer - Minimum requirement is Android 5.1
      defaultTargetSdkVersion=28 //Integer - We ALWAYS target the latest by default
      defaultCompileSdkVersion=29 //Integer - We ALWAYS compile with the latest by default
    }
Run Code Online (Sandbox Code Playgroud)

And*_*min 39

只需将 android/app/build.gradle 文件中的compileSdkVersion 和targetSdkVersion 升级到31 即可。

  • 我已经升级但无法工作 (3认同)

Sha*_*put 28

更新-:确保compileSdkVersion在 android/app/build.gradle 文件中设置为31

Old-:我在 flutter 应用程序中使用 Geolocator 插件时遇到此错误。要解决此错误,您必须打开 LocationMapper.java(您可以在调试控制台中找到此路径)。并删除这部分

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S)
Run Code Online (Sandbox Code Playgroud)

并确保你的android编译版本是30(对于GeoLocator Build.gradle)

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
      position.put("is_mocked", location.isMock());
   } 
Run Code Online (Sandbox Code Playgroud)

  • 正确的方法是固定地理定位器的版本号。请参阅[此处](https://github.com/Baseflow/flutter-geolocator/issues/867#issuecomment-942430988) (3认同)
  • 先生,您是救星!我花了几个小时让地理定位器工作,最后我修好了它,谢谢你!太感谢了! (2认同)

Nor*_*eau 8

Build.VERSION_CODES.R仅存在于API 30 中,但您正在使用 API 29 进行编译。

如果要使用 .compileSdkVersion,则应将其设置为 30 Build.VERSION_CODES.R

更新cordova-android@10

自cordova-android@10 起,compileSdkVersion已删除android-targetSdkVersion统一设置目标和编译SDK 版本,使它们始终保持一致。


Hai*_*inh 7

在此输入图像描述

找到该行并将其从 30 更改为 31。


小智 7

buildscript {
    ext {
        buildToolsVersion = "30.0.3"
        minSdkVersion = 21
        compileSdkVersion = 33 // increase one by one 
        }
    }
Run Code Online (Sandbox Code Playgroud)

在我们的例子中,发生错误时它是31,我们将其增加到compileSdkVersion 33,并且错误得到解决。您可以每次将其增加 1,直到您的错误无法解决为止。

  • 更新到33解决了我的问题!, 31 没用 (2认同)