我正在开发一个React Native应用程序,其中包含了一些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权限。它没有起作用。现在,我的libs的当前版本是:
"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.发布于 2021-02-08 11:51:59
您可能不想获取其他人在线引用的版本,而是获取您在本地安装的版本,这取决于您上次更新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。我在一个项目中经历了这一点,这个项目在一年多的时间里构建得很好,然后我更新了expo-gl-cpp包(以及其他一些包),并立即遇到了与您相同的问题/错误。我必须为Platform 29更新我的软件开发工具包,然后修改我的build.gradle设置,然后才能重新启动和运行。我使用Android Studio来管理我的SDK,它都是指向和点击的,易于使用。我不会把它用在别的地方,也从来没有这个需要。
哈!
发布于 2021-05-20 13:38:19
我已经通过将react-native-unimodules从版本0.13.2降级到0.12.0解决了这个问题
发布于 2021-04-06 20:07:03
我通过将react-native-unimodules从0.13.2版本降级到0.12.0解决了这个问题,我认为问题是unimodules的新版本需要升级你的android构建工具,所以正确的事情不是降级unimodules,而是像这样将你的构建工具从28.0.0升级到29.0.3:
buildscript {
ext {
buildToolsVersion = "29.0.3"
minSdkVersion = 21
compileSdkVersion = 29
targetSdkVersion = 29https://stackoverflow.com/questions/65593759
复制相似问题