任务':app:compileDebugJavaWithJavac'的执行失败。 react-native

时间:2019-01-30 18:27:01

标签: react-native react-native-android

配置打包程序时,在项目中找不到“ expo”程序包 正在启动JS服务器... 在设备上构建和安装应用程序(cd android && ./gradlew installDebug)...

  

任务:app:compileDebugJavaWithJavac FAILED失败   / media / rahul / OTHER FILES / mob / first / android / app / src / main / java / com / practice / MainApplication.java:5:错误:找不到符号   导入com.facebook.react.ReactApplication;                            ^     符号:类ReactApplication     位置:包com.facebook.react   / media / rahul / OTHER FILES / mob / first / android / app / src / main / java / com / practice / MainApplication.java:6:错误:找不到符号   导入com.facebook.react.ReactNativeHost;                            ^     符号:类ReactNativeHost     位置:包com.facebook.react   / media / rahul / OTHER FILES / mob / first / android / app / src / main / java / com / practice / MainApplication.java:14:错误:找不到符号   公共类MainApplication扩展应用程序实现ReactApplication {                                                               ^     符号:类ReactApplication   / media / rahul / OTHER FILES / mob / first / android / app / src / main / java / com / practice / MainApplication.java:16:错误:找不到符号     私有最终ReactNativeHost mReactNativeHost =新的ReactNativeHost(this){                   ^     符号:类ReactNativeHost     位置:类MainApplication   / media / rahul / OTHER FILES / mob / first / android / app / src / main / java / com / practice / MainApplication.java:36:错误:找不到符号     公共ReactNativeHost getReactNativeHost(){            ^     符号:类ReactNativeHost     位置:类MainApplication   / media / rahul / OTHER FILES / mob / first / android / app / src / main / java / com / practice / MainActivity.java:5:错误:MainActivity不是抽象的,并且不会覆盖ReactActivity中的抽象方法getPackages()   公共类MainActivity扩展了ReactActivity {          ^   / media / rahul / OTHER FILES / mob / first / android / app / src / main / java / com / practice / MainApplication.java:16:错误:找不到符号     私有最终ReactNativeHost mReactNativeHost =新的ReactNativeHost(this){                                                          ^     符号:类ReactNativeHost     位置:类MainApplication   / media / rahul / OTHER FILES / mob / first / android / app / src / main / java / com / practice / MainApplication.java:35:错误:方法未覆盖或从超类型实现方法     @Override     ^   8个错误

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

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

      

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

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

  • https://help.gradle.org

  • 获得更多帮助

22秒内失败 15个可执行任务:14个已执行,1个是最新的 无法在设备上安装该应用,请阅读上面的错误以获取详细信息。 确保您正在运行Android模拟器或已连接设备,并且 设置您的Android开发环境: https://facebook.github.io/react-native/docs/getting-started.html

我是第一次设置本机项目,请检查我是否正确遵循了步骤?  1.首先创建反应本机应用程序  2. npm运行弹出  3.打开android studio,然后打开模拟器  4. react-native运行Android 但出现上述错误。

7 个答案:

答案 0 :(得分:1)

发生此错误是因为您的RN版本与Android的build.gradle版本不同。当您创建本机应用程序时,它可能会创建类似android的应用程序:

android/app/build.gradle

implementation "com.facebook.react:react-native:+"

因此,检查您的node_modules文件夹,查找react-native文件夹,并查找带有数字的文件夹,该数字是react-native的版本。对我来说是0.58.3,然后更新 android / app / build.gradle

implementation "com.facebook.react:react-native:0.58.3"

全部。

答案 1 :(得分:1)

这发生在我身上,因为我忘记安装一些模块。

然后我跑:

1。 npm install

2. npx react-native run-android

OBS:你也可以运行 npx react-native link。链接您的模块。

答案 2 :(得分:0)

您应该提供更多信息。您发布的错误不是很有帮助。

没有更多信息,您可以尝试:

cd android && ./gradlew clean

看看是否有帮助。

答案 3 :(得分:0)

只需执行以下步骤

1- cd android
2-gradlew clean
3-cd ..
4-react-native run-android

答案 4 :(得分:0)

[对于被 Google 带到这里的人]

就我而言,错误出现在我尝试使用 @react-native-async-storage/async-storage 链接 react-native link 后。

我使用 React Native CLI 初始化了我的项目,它落后了几个小版本。但是我将依赖项与 npx react-native link 联系起来。 版本不匹配!

据我所知,这是该错误的根本原因。

您最有可能在 android/app/src/main/java/com/focustime/MainApplication.javaandroid/settings.gradle 内进行更改。 如果您使用 git 进行开发,只需 checkout 这两个文件。

以下是 RN link 引入的更改:

diff --git a/android/app/src/main/java/com/focustime/MainApplication.java b/android/app/src/main/java/com/focustime/MainApplication.java
index ed18f44..2bdc42c 100644
--- a/android/app/src/main/java/com/focustime/MainApplication.java
+++ b/android/app/src/main/java/com/focustime/MainApplication.java
@@ -4,6 +4,7 @@ import android.app.Application;
 import android.content.Context;
 import com.facebook.react.PackageList;
 import com.facebook.react.ReactApplication;
+import com.reactnativecommunity.asyncstorage.AsyncStoragePackage;
 import com.facebook.react.ReactInstanceManager;
 import com.facebook.react.ReactNativeHost;
 import com.facebook.react.ReactPackage;
diff --git a/android/settings.gradle b/android/settings.gradle
index 20ccd07..f6f51cd 100644
--- a/android/settings.gradle
+++ b/android/settings.gradle
@@ -1,3 +1,5 @@
 rootProject.name = 'FocusTime'
+include ':@react-native-async-storage_async-storage'
+project(':@react-native-async-storage_async-storage').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-async-storage/async-storage/android')
 apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
 include ':app'

答案 5 :(得分:0)

无论如何,我在这里结束了我在谷歌上搜索类似的编译问题,问题是操作系统更新从我的路径中擦除了 Java JDK。修复解决了问题。

答案 6 :(得分:0)

我也有类似的崩溃报告。但就我而言,问题是缺少 JAVA_HOME 的环境变量。 我将其设置为与 Android Studio 中相同的路径并解决了该问题:文件 -> 项目结构 -> SDK 位置 -> JDK 位置。

export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home"