首页 > 解决方案 > 运行`detox build -c android.emu.debug`任务时出错:app:compileDebugJavaWithJavac FAILED in react native

问题描述

在遵循 Detox [android 安装教程][1] 时,我在运行detox build -c android.emu.debug


❯ detox build -c android.emu.debug detox[23052] INFO: [build.js] cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug && cd ..

任务 :app:generatePackageList 任务 :app:preBuild 任务 :react-native-gesture-handler:preBuild 最新任务 :react-native-gesture-handler:preDebugBuild 最新任务 :react-native-gesture- handler:checkDebugManifest 最新任务 :react-native-gesture-handler:processDebugManifest 最新任务 :react-native-reanimated:preBuild 最新任务 :react-native-reanimated:preDebugBuild UP-TO -DATE 任务:react-native-reanimated:checkDebugManifest 最新任务:react-native-reanimated:processDebugManifest 最新任务:react-native-screens:preBuild 最新任务:react-native-屏幕:preDebugBuild 最新任务:react-native-screens:checkDebugManifest 最新任务:react-native-screens:processDebugManifest 最新任务:react-native-vector-icons:preBuild UP-TO -日期任务:react-native-vector-icons:preDebugBuild 最新任务:react-native-vector-icons:checkDebugManifest 最新任务:react-native-vector-icons:processDebugManifest 最新任务:react- native-webview:preBuild UP-TO-DATE 任务:react-native-webview:preDebugBuild UP-TO-DATE 任务:react-native-webview:checkDebugManifest UP-TO-DATE 任务:react-native-webview:processDebugManifest UP-TO -DATE 任务:app:preDebugBuild UP-TO-DATE 任务:react-native-screens:compileDebugAidl NO-SOURCE 任务:react-native-vector-icons:compileDebugAidl NO-SOURCE 任务:react-native-gesture-handler:compileDebugAidl NO -SOURCE 任务 :react-native-reanimated:compileDebugAidl NO-SOURCE 任务 :react-native-webview:compileDebugAidl NO-SOURCE 任务 :app:compileDebugAidl NO-SOURCE 任务 :react-native-gesture-handler:packageDebugRenderscript NO-SOURCE 任务:react-native-reanimated:packageDebugRenderscript NO-SOURCE 任务:react-native-screens:packageDebugRenderscript NO-SOURCE 任务:react-native-vector-icons:packageDebugRenderscript NO-SOURCE 任务:react-native-webview: packageDebugRenderscript NO-SOURCE 任务 :app:compileDebugRenderscript NO-SOURCE 任务 :app:checkDebugManifest 最新任务 :app:generateDebugBuildConfig 最新任务 :app:bundleDebugJsAndAssets SKIPPED 任务 :app:prepareLintJar 最新任务 : app:generateDebugSources 最新任务 :react-native-gesture-handler:generateDebugBuildConfig 最新任务 :react-native-gesture-handler:compileDebugRenderscript 无源任务 :react-native-gesture-handler:generateDebugResValues UP -TO-DATE 任务:react-native-gesture-handler:generateDebugResources 最新任务:react-native-gesture-handler:prepareLintJar 最新任务:react-native-gesture-handler:generateDebugSources 最新任务:react-native-gesture-handler:javaPreCompileDebug UP -TO-DATE 任务:react-native-gesture-handler:packageDebugResources 最新任务:react-native-gesture-handler:generateDebugRFile 最新

> 任务:react-native-gesture-handler:compileDebugJavaWithJavac FAILED /home/rogerd/dev/app_cachacagestor/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager。 java:4: 错误: com.facebook.react.module.annotations 包不存在 导入 com.facebook.react.module.annotations.ReactModule;^ /home/rogerd/dev/app_cachacagestor/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.java:17:错误:找不到符号@ReactModule(名称 = RNGestureHandlerRootViewManager.REACT_CLASS) ^ 符号:类 ReactModule /home/rogerd/dev/app_cachacagestor/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.java: 16:错误:包 com.facebook.react.module.annotations 不存在导入 com.facebook.react.module.annotations.ReactModule;^ /home/rogerd/dev/app_cachacagestor/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.java:19:错误:找不到符号导入com。 facebook.react.uimanager.UIBlock;^ 符号:类 UIBlock 位置:包 com.facebook.react.uimanager /home/rogerd/dev/app_cachacagestor/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/ RNGestureHandlerModule.java:40: 错误: 找不到符号 @ReactModule(name=RNGestureHandlerModule.MODULE_NAME) ^ 符号: 类 ReactModule /home/rogerd/dev/app_cachacagestor/node_modules/react-native-gesture-handler/android/src/main/ java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager。java:218: 错误: 找不到符号 @ReactProp(name = ViewProps.BORDER_RADIUS) ^ 符号: 变量 BORDER_RADIUS 位置: 类 ViewProps /home/rogerd/dev/app_cachacagestor/node_modules/react-native-gesture-handler/android/src/ main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.java:41:错误:类事件中的方法初始化不能应用于给定类型;super.init(handler.getView().getId()); ^ 必需:int,long 找到:int 原因:实际参数列表和正式参数列表的长度不同,其中 T 是类型变量:T 扩展在类 Event /home/rogerd/dev/app_cachacagestor/node_modules/react-native-gesture 中声明的事件-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.java:45:错误:找不到符号 return parent.getChildAt(((ReactViewGroup) parent).getZIndexMappedChildIndex(index)); ^ 符号:方法 getZIndexMappedChildIndex(int) 位置:类 ReactViewGroup /home/rogerd/dev/app_cachacagestor/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.java :54: 错误:找不到符号字符串溢出 = ((ReactViewGroup) view).getOverflow(); ^ 符号:方法 getOverflow() 位置:类 ReactViewGroup /home/rogerd/dev/app_cachacagestor/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.java: 574:错误:找不到符号 final int rootViewTag = uiManager.resolveRootTagFromReactTag(ancestorViewTag); ^ 符号:方法 resolveRootTagFromReactTag(int) 位置:变量 uiManager 类型为 UIManagerModule /home/rogerd/dev/app_cachacagestor/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/ RNGestureHandlerModule.java:582:错误:找不到符号 if (root.getRootView().getRootViewTag() == rootViewTag) { ^ 符号:方法 getRootViewTag() 位置:类 ReactRootView /home/rogerd/dev/app_cachacagestor/node_modules/react -native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.java:598:错误:找不到符号 uiManager。方法 getRootViewTag() 位置:类 ReactRootView /home/rogerd/dev/app_cachacagestor/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerPackage.java:18:错误: RNGestureHandlerPackage 不是抽象的,不会覆盖 ReactPackage 中的抽象方法 createJSModules() public class RNGestureHandlerPackage implements ReactPackage { ^ /home/rogerd/dev/app_cachacagestor/node_modules/react-native-gesture-handler/android/src/main/java/ com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.java:45:错误:类事件中的方法初始化不能应用于给定类型;super.init(handler.getView().getId()); ^ 必需:int,long 找到:int 原因:实际参数列表和形式参数列表的长度不同,其中 T 是类型变量:T extends Event 在类 Event 中声明 注意:/home/rogerd/dev/app_cachacagestor/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.java 使用或覆盖已弃用的 API。注意:使用 -Xlint:deprecation 重新编译以获取详细信息。注意:某些输入文件使用未经检查或不安全的操作。注意:使用 -Xlint:unchecked 重新编译以获取详细信息。16 个错误 未选中详细信息。16 个错误 未选中详细信息。16 个错误

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

  • 出了什么问题:任务':react-native-gesture-handler:compileDebugJavaWithJavac'的执行失败。

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

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

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

此版本中使用了已弃用的 Gradle 功能,使其与 Gradle 6.0 不兼容。使用“--warning-mode all”显示各个弃用警告。请参阅 https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:command_line_warnings

5 秒内构建失败 22 个可操作任务:2 个已执行,20 个最新排毒 [23052] 错误:[cli.js] 错误:命令失败:cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug && cd ..


“反应”:“16.8.6”,

“反应原生”:“0.60.5”,

“排毒”:“^14.3.2”,

"摩卡": "^6.2.0",


有谁知道如何解决?

标签: androidreact-nativereact-native-androiddetox

解决方案


我通过更改 android/build.gradle 中的 maven 存储库的顺序来解决它。我的所有项目看起来像这样:

allprojects {
repositories {
    mavenLocal()
    google()
    jcenter()
    maven {
        // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
        url("$rootDir/../node_modules/react-native/android")
    }
    maven {
        // Android JSC is installed from npm
        url("$rootDir/../node_modules/jsc-android/dist")
    }
    maven {
        // All of Detox' artifacts are provided via the npm module
        url "$rootDir/../node_modules/detox/Detox-android"
    }
    maven { url 'https://www.jitpack.io' }
}

}

感谢gypsicoder

https://github.com/software-mansion/react-native-gesture-handler/issues/1002


推荐阅读