android - 任务 ':expo-permissions:compileDebugKotlin' 执行失败

标签 android react-native expo expo-camera expo-permissions

我正在开发一个 React Native 应用程序,其中包含了一些 expo 库(裸工作流)。我已经成功使用了expo-location ,但现在我也安装了expo-camera ,应用程序将不再使用 npm run android 构建,还没有在ios上尝试过。
它将在 :expo-permissions:compileDebugKotlin 崩溃步。
我确实在另一个论坛上发现了问题,他们说要更新 buildToolsVersion来自 build.gradle29.0.2但它已经在 29.0.2 .然后我更新了react-native-unimodules这是使用 expo 库所必需的,并且包含 expo 权限。它没有用。现在,我当前的库版本是:

"react-native-unimodules": "^0.12.0"

"expo-permissions": "~10.0.0"

"expo-camera": "^9.1.1"
你有什么想法?有人也遇到过这个问题吗?
谢谢
更详细的堆栈跟踪是这样的:
Task :expo-permissions:compileDebugKotlin FAILED

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.2/userguide/command_line_interface.html#sec:command_line_warnings
153 actionable tasks: 4 executed, 149 up-to-date
e: app\node_modules\expo-permissions\android\src\main\java\expo\modules\permissions\PermissionsService.kt: (16, 40): Unresolved reference: PermissionAwareActivity
e: app\node_modules\expo-permissions\android\src\main\java\expo\modules\permissions\PermissionsService.kt: (170, 17): Unresolved reference: PermissionAwareActivity
e: app\node_modules\expo-permissions\android\src\main\java\expo\modules\permissions\PermissionsService.kt: (236, 19): Unresolved reference: PermissionAwareActivity
e: app\node_modules\expo-permissions\android\src\main\java\expo\modules\permissions\PermissionsService.kt: (237, 62): Too many arguments for public final fun requestPermissions(@NonNull p
0: Array<(out) String!>, p1: Int): Unit defined in android.app.Activity
e: app\node_modules\expo-permissions\android\src\main\java\expo\modules\permissions\PermissionsService.kt: (237, 64): Cannot infer a type for this parameter. Please specify it explicitly.
e: app\node_modules\expo-permissions\android\src\main\java\expo\modules\permissions\PermissionsService.kt: (237, 77): Cannot infer a type for this parameter. Please specify it explicitly.
e: app\node_modules\expo-permissions\android\src\main\java\expo\modules\permissions\PermissionsService.kt: (237, 97): Cannot infer a type for this parameter. Please specify it explicitly.

FAILURE: Build failed with an exception.

最佳答案

您可能不想使用其他人在线引用的版本,而是使用您在本地安装的版本,这取决于您上次更新 Android SDK 的时间。
在 Windows 上,您可以查看您的 SDK 版本(工具版本):

dir %ANDROID_SDK_ROOT%\build-tools
可能 *nix 系统会有类似的 SDK 路径(未检查):
ls -al $ANDROID_SDK_ROOT\build-tools
您可能希望更新它以匹配与您所针对的设备的平台相对应的 SDK。在我的情况下,我的目标是平台 29,在我的/build-tools/目录中,我找到了一个“/29.0.3/”目录(等等)。所以,我编辑了我的 build.gradle :
buildscript {
    ext {
        buildToolsVersion = "29.0.3"
        minSdkVersion = 29
        compileSdkVersion = 29
        targetSdkVersion = 29
.. 编辑后,我能够再次成功构建并部署到我的 Android 设备。
您可能还需要更新您的 SDK。我在一个 build 了一年多的项目中遇到了这种情况,然后我更新了 expo-gl-cpp包(和其他一些)并立即遇到您遇到的相同问题/错误。我必须为 Platform 29 更新我的 SDK,然后修改我的 build.gradle在我重新启动并运行之前的设置。我使用 Android Studio 来管理我的 SDK,它都是点击式的,易于使用。我不将它用于其他任何事情,从来没有需要。
!

关于android - 任务 ':expo-permissions:compileDebugKotlin' 执行失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65593759/

相关文章:

android - react-native android 发布 keystore

Android - 避免按后退按钮时停止服务

Android 4.0 asynctask 同时不可能

react-native - Redux reducer 没有更新 immutable.js Redux 存储

node.js - 没有获得 req header 授权 token

firebase - 如何在没有错误提示的情况下调试 RN Expo 应用程序中的白屏页面(无内容显示)

ios - 执行 expo build :ios 时,Apple Developer Portal 中的身份验证失败

android - 添加 TextViews 并更新 ViewGroup 以显示 Textviews

android - 如何在 Android 应用程序中使用 Geocoder 查找特定位置的大洲

javascript - React Native 使用什么来允许 JavaScript 在 iOS 和 Android 上本地执行?