任务“:app:compileDebugJavaWithJavac"执行失败.在运行 React Native 项目时 [英] Execution failed for task ':app:compileDebugJavaWithJavac'. while running React Native Project

查看:38
本文介绍了任务“:app:compileDebugJavaWithJavac"执行失败.在运行 React Native 项目时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在我的真实 Android 设备上运行我现有的 React Native 项目.然后以某种方式弹出这个错误.错误总是关于找不到符号".我有 JDK 和 SDK 并添加到我的系统变量中.但我仍然不知道为什么它会给我这样的错误.我记得,我只是降级了 react-native 的版本.

I was running my existing React Native Project in my real android device. Then somehow this error pop up. The error are always about "cannot find symbol". I have JDK and SDK and add into my system variables. But I still do not know why it gives me error like this. As I remember, I just downgrade the version of react-native.

:app:compileDebugJavaWithJavac - 不是增量的(例如,输出已经改变,之前没有执行等).D:\rnprojects\firstproject\android\app\src\main\java\com\emptyprojecttemplate\MainApplication.java:5:错误:找不到符号导入 com.facebook.react.ReactApplication;^符号:类 ReactApplication位置:包 com.facebook.reactD:\rnprojects\firstproject\android\app\src\main\java\com\emptyprojecttemplate\MainApplication.java:6: 错误:找不到符号导入 com.facebook.react.ReactNativeHost;^符号:类 ReactNativeHost位置:包 com.facebook.reactD:\rnprojects\firstproject\android\app\src\main\java\com\emptyprojecttemplate\MainApplication.java:14: 错误:找不到符号公共类 MainApplication 扩展应用程序实现 ReactApplication {^符号:类 ReactApplicationD:\rnprojects\firstproject\android\app\src\main\java\com\emptyprojecttemplate\MainApplication.java:16: 错误:找不到符号私有最终 ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {^符号:类 ReactNativeHost位置:类 MainApplicationD:\rnprojects\firstproject\android\app\src\main\java\com\emptyprojecttemplate\MainApplication.java:36: 错误:找不到符号公共 ReactNativeHost getReactNativeHost() {^符号:类 ReactNativeHost位置:类 MainApplicationD:\rnprojects\firstproject\android\app\src\main\java\com\emptyprojecttemplate\MainActivity.java:5: 错误:MainActivity 不是抽象的,并且不会覆盖 ReactActivity 中的抽象方法 getPackages()公共类 MainActivity 扩展了 ReactActivity {^D:\rnprojects\firstproject\android\app\src\main\java\com\emptyprojecttemplate\MainApplication.java:16: 错误:找不到符号私有最终 ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {^符号:类 ReactNativeHost位置:类 MainApplicationD:\rnprojects\firstproject\android\app\src\main\java\com\emptyprojecttemplate\MainApplication.java:35: 错误:方法没有覆盖或实现来自超类型的方法@覆盖^8 错误:app:compileDebugJavaWithJavac 失败

:app:compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.). D:\rnprojects\firstproject\android\app\src\main\java\com\emptyprojecttemplate\MainApplication.java:5: error: cannot find symbol import com.facebook.react.ReactApplication; ^ symbol: class ReactApplication location: package com.facebook.react D:\rnprojects\firstproject\android\app\src\main\java\com\emptyprojecttemplate\MainApplication.java:6: error: cannot find symbol import com.facebook.react.ReactNativeHost; ^ symbol: class ReactNativeHost location: package com.facebook.react D:\rnprojects\firstproject\android\app\src\main\java\com\emptyprojecttemplate\MainApplication.java:14: error: cannot find symbol public class MainApplication extends Application implements ReactApplication { ^ symbol: class ReactApplication D:\rnprojects\firstproject\android\app\src\main\java\com\emptyprojecttemplate\MainApplication.java:16: error: cannot find symbol private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { ^ symbol: class ReactNativeHost location: class MainApplication D:\rnprojects\firstproject\android\app\src\main\java\com\emptyprojecttemplate\MainApplication.java:36: error: cannot find symbol public ReactNativeHost getReactNativeHost() { ^ symbol: class ReactNativeHost location: class MainApplication D:\rnprojects\firstproject\android\app\src\main\java\com\emptyprojecttemplate\MainActivity.java:5: error: MainActivity is not abstract and does not override abstract method getPackages() in ReactActivity public class MainActivity extends ReactActivity { ^ D:\rnprojects\firstproject\android\app\src\main\java\com\emptyprojecttemplate\MainApplication.java:16: error: cannot find symbol private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { ^ symbol: class ReactNativeHost location: class MainApplication D:\rnprojects\firstproject\android\app\src\main\java\com\emptyprojecttemplate\MainApplication.java:35: error: method does not override or implement a method from a supertype @Override ^ 8 errors :app:compileDebugJavaWithJavac FAILED

FAILURE:构建失败,出现异常.

FAILURE: Build failed with an exception.

  • 出了什么问题:任务:app:compileDebugJavaWithJavac"执行失败.编译失败;有关详细信息,请参阅编译器错误输出.

Build.gradle:

Build.gradle:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
        repositories {
           jcenter()
        }
     dependencies {
         classpath 'com.android.tools.build:gradle:2.2.3'

         // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
     }
}

allprojects {
    repositories {
        mavenLocal()
        jcenter()
        maven {
             // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
             url "$rootDir/../node_modules/react-native/android"
        }
    }
}

Build.gradle/app:

Build.gradle/app:

android {
compileSdkVersion 23
buildToolsVersion "23.0.1"

defaultConfig {
    applicationId "com.emptyprojecttemplate"
    minSdkVersion 16
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
    ndk {
        abiFilters "armeabi-v7a", "x86"
    }
}
splits {
    abi {
        reset()
        enable enableSeparateBuildPerCPUArchitecture
        universalApk false  // If true, also generate a universal APK
        include "armeabi-v7a", "x86"
    }
}
buildTypes {
    release {
        minifyEnabled enableProguardInReleaseBuilds
        proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
    }
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
    variant.outputs.each { output ->
        // For each separate APK per architecture, set a unique version code as described here:
        // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
        def versionCodes = ["armeabi-v7a":1, "x86":2]
        def abi = output.getFilter(OutputFile.ABI)
        if (abi != null) {  // null for the universal-debug, universal-release variants
            output.versionCodeOverride =
                    versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
        }
    }
}
}

dependencies {
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:23.0.1"
    compile "com.facebook.react:react-native:+"  // From node_modules
}

 // Run this once to be able to run the application with BUCK
 // puts all compile dependencies into folder libs for BUCK to use
 task copyDownloadableDepsToLibs(type: Copy) {
     from configurations.compile
     into 'libs'
 }

推荐答案

您的堆栈跟踪开始于: error: cannot find symbol import com.facebook.react.ReactApplication 这似乎表明它找不到反应库导入.

Your stacktrace starts with : error: cannot find symbol import com.facebook.react.ReactApplication this seems to suggest it cannot find the React Library import.

我将在 Github 上为您提供答案,请在此处阅读:

I'm going to include a answer on Github for you, read here:

https://github.com/transistorsoft/react-native-background-geolocation/issues/294

(顺便说一句,这与您在 /your-project/android/build.gradle 中的 build.gradle 相关)

(Btw, this relates to your build.gradle in /your-project/android/build.gradle)

如果其他人遇到同样的问题:请确保您正确添加了新的存储库.根据 Android 文档,每个 maven 存储库都应该在自己的 maven {} 块中.

In case anyone else is experiencing the same issue: make sure you correctly add new repositories. According to Android docs every maven repo should be in its own maven {} block.

这就是为什么

maven {
    // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
    url "$rootDir/../node_modules/react-native/android"
    url 'some new extra repo'
}

打破依赖关系.正确的版本是

breaks dependencies. The correct version is

maven {
    // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
    url "$rootDir/../node_modules/react-native/android"
}
maven {
    url 'some new extra repo'
}

更新

因为上面没有解决你的问题,你的 build.gradle(s) 看起来不错(对我来说).我将包括一些其他解决方案:

As the above isn't solving your issue and your build.gradle(s) look good (to me). I'll include some other solutions :

按照此处的建议升级 RN 和 RN-cli:

Upgrade RN and RN-cli as advised here:

无法解析符号 ReactApplication/ReactNativeHost

这里还有一个:

失败:构建失败,反应异常-原生安卓

这里还有一个:

反应原生安卓错误:找不到符号

最后的手段

可能只是创建一个新的测试项目(使用最新版本)像 react-native init anotherproject 来看看它是否运行是值得的.

It may be worth in just creating a new test project (with the latest versions) like react-native init anotherproject to see if that runs.

这篇关于任务“:app:compileDebugJavaWithJavac"执行失败.在运行 React Native 项目时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆