我正在开发一个React原生应用程序,其中包含了一些expo库(裸工作流)。我已经成功地使用了expo-location
,但现在我也安装了expo-camera
后,应用程序将无法再使用npm run android
构建,还没有在ios上尝试。
它将在:expo-permissions:compileDebugKotlin
步骤崩溃。
我确实在另一个论坛上发现了这个问题,他们说要把buildToolsVersion
从build.gradle
更新到29.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.
6条答案
按热度按时间3lxsmp7m1#
您可能不想使用其他人在线引用的版本,而是使用您本地安装的版本,这取决于您上次更新Android SDK的时间。
在Windows上,您可以查找SDK版本(工具版本):
nxowjjhe2#
您可能安装了较新版本的
expo-camera
。我的expo-clipboard
软件包也遇到了同样的问题。我的项目使用的是
expo@44
,我遵循了官方文档,运行了npm install expo-clipboard
,安装了最新版本,这是兼容最新的世博会版本在这个时候是expo@46
。简单的解决方法是根据您的expo版本使用正确的版本。
1.在你的package.json中找到你的expo版本。我的是
"expo": "~44.0.0",
1.转到
https://github.com/expo/expo/tree/sdk-{version}/packages
(我的是https://github.com/expo/expo/tree/sdk-44/packages)。1.找到要使用的软件包(如
expo-clipboard
),然后转到其package.json文件以检查版本Ex. www.example.com https://github.com/expo/expo/blob/sdk-44/packages/expo-clipboard/package.json#L31.安装该特定版本
npm install expo-clipboard@2.1.1
希望能有所帮助!
c6ubokkw3#
我已经通过将react-native-unimodules从版本0.13.2降级到0.12.0解决了此问题
g9icjywg4#
我通过将react-native-unimodules从版本0.13.2降级到0.12.0解决了这个问题,我认为问题是新版本的unimodules需要升级您的android构建工具,因此正确的做法不是降级unimodules,而是将构建工具从28.0.0升级到29.0.3,如下所示:
mtb9vblg5#
我通过将我的expo版本从43.0.0减少到40.0.0并设置“sdkVersion”来使我的工作正常:“38.0.0”。看起来这些版本彼此不匹配,或者与其他一些expo依赖项不匹配。
在应用程序json中:
...并在包中。json:
siv3szwd6#
当我重新生成项目或尝试在设备上运行时,也遇到了同样的问题。
我通过在我的expo项目上使用
expo install expo-permissions
安装expo权限,然后转到Android Studio并同步我的项目,之后我清理我的项目,您可以在build/Clean Project上找到该项目,之后我在Android Studio上安装Kotlin扩展,之后再次清理项目,然后rebuild Project(build/Rebuild Project)。这些步骤解决了我的问题。