Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 问题编译应用程序-反应本机_Java_Android_React Native - Fatal编程技术网

Java 问题编译应用程序-反应本机

Java 问题编译应用程序-反应本机,java,android,react-native,Java,Android,React Native,我正在尝试编译一个我正在处理的react本机模块。我认为问题在于,我没有使用/android/src/main/java…,而是使用/android/TeamCode/src/main/java。如果是这种情况,我将如何使react native看起来更像/android/TeamCode/src,而不是/android/src?但是我不知道这是否是问题所在,我可能完全错了 结构 以下是我的项目的外观: - module --- index.js --- package.json --- an

我正在尝试编译一个我正在处理的react本机模块。我认为问题在于,我没有使用
/android/src/main/java…
,而是使用
/android/TeamCode/src/main/java
。如果是这种情况,我将如何使react native看起来更像
/android/TeamCode/src
,而不是
/android/src
?但是我不知道这是否是问题所在,我可能完全错了

结构 以下是我的项目的外观:

- module 
--- index.js
--- package.json
--- android //this is where the below screenshot is from
----- build.gradle
----- TeamCode
------- build.gradle //apply from: '../build.common.gradle'
--- Example //this is the app I am trying to compile
----- index.android.js
----- android
----- package-lock.json
----- other stuff
错误 截图

module/example/package.json 模块/index.js android/build.common.gradle 编辑:

  • 当我添加
    java.srcDirs+='android/TeamCode/src/main/java'
    时,我得到:

    失败:生成失败,出现异常

    • 出了什么问题: 任务“:ftcnative:compileReleaseJavaWithJavac”的执行失败。 找不到源java类:'/Users/zoe/saas/robotics/ftcnative/android/TeamCode/src/main/java/org/firstinspires/ftc/TeamCode/MyModule.java',因为它不属于任何源目录:'[/Users/zoe/saas/robotics/ftcnative/Example/node_modules/ftcnative/android/src/main/java,/Users/zoe/saas/robotics/ftcnative/Example/node_modules/ftcnative/android/node_modules/ftcnative/android/src/release/java,/Users/zoe/saas/robotics/ftcnative/Example/node_modules/ftcnative/ftcnative/ftcnative/android/build/generated/source/r/release,/Users/zoe/saas/robotics/ftcnative/Example/node_modules/ftcnative/android/build/generated/source/buildConfig/release,/Users/zoe/saas/robotics/ftcnative/Example/saas/robotics/ftcnative/node_modules/ftcnative/android/build/g已生成/来源/rs/发布]'

  • 当我添加
    java.srcDirs+='android/TeamCode/src/main/java'
    时,我仍然得到第一个错误


我不知道React Native,但在Android中,要做到这一点,您必须更改build.gradle。找到
Android
部分,并添加
SourceSet
部分,如下所示:

android {
    //...
    sourceSets {
        main {
            // Like this...
            java.srcDirs += 'TeamCode/src/main/java'
            // ...or maybe, like that...
            java.srcDirs += 'android/TeamCode/src/main/java'
            // Dirty, extreme alternative...
            java.srcDirs += '/Users/zoe/saas/robotics/ftcnative/android/TeamCode/src/main/java'
        }
    }
}

请注意,这是添加一个额外的源目录(因为
+=
)。

我不知道React Native,但在Android中,要做到这一点,您必须更改build.gradle。找到
Android
部分,然后添加
SourceSet
部分,如下所示:

android {
    //...
    sourceSets {
        main {
            // Like this...
            java.srcDirs += 'TeamCode/src/main/java'
            // ...or maybe, like that...
            java.srcDirs += 'android/TeamCode/src/main/java'
            // Dirty, extreme alternative...
            java.srcDirs += '/Users/zoe/saas/robotics/ftcnative/android/TeamCode/src/main/java'
        }
    }
}

请注意,这是添加了一个额外的源目录(因为
+=
)。

在更改了一个java方法的名称后,我遇到了同样的问题

我通过以下方式解决了这个问题:

删除我的android构建文件夹并再次运行
react native run android


在更改我的一个java方法的名称后,我遇到了同样的问题

我通过以下方式解决了这个问题:

删除我的android构建文件夹并再次运行
react native run android


感谢您的帮助!不幸的是,这不起作用,第二个产生了与上面相同的错误,第一个给了我这个错误:
找不到源java类:'/Users/zoe/saas/robotics/ftcnative/android/TeamCode/src/main/java/org/firstinspires/ftc/TeamCode/MyModule.java',因为它不属于任何源目录:'[/Users/zoe/saas/robotics/ftcnative/Example/node_modules/ftcnative/android/src/main/java,…
您能用完整的错误消息更新您的问题吗?另外,添加两个gradle文件的位置。我已经添加了两个gradle文件并添加了完整的错误。谢谢您的帮助。如果我将repo与我的完整项目链接起来,会有帮助吗ect?TeamCode/build.gradle是否只有
apply from:'../build.common.gradle'
行?如果是这样,那么
sourceSet
更改应该转到build.common.gradle,我想。我刚刚完全重新构建了这个项目,我仍然不知道问题是什么,但在重新构建它时它似乎得到了修复。谢谢你的帮助!不幸的是,that不起作用,第二个产生了与上面相同的错误,第一个给了我这个错误:
找不到源java类:'/Users/zoe/saas/robotics/ftcnative/android/TeamCode/src/main/java/org/firstinspires/ftc/TeamCode/MyModule.java',因为它不属于任何源目录:'[/Users/zoe/saas/robotics/ftcnative/Example/node_modules/ftcnative/android/src/main/java,…
您能用完整的错误消息更新您的问题吗?另外,添加两个gradle文件的位置。我已经添加了两个gradle文件并添加了完整的错误。谢谢您的帮助。如果我将repo与我的完整项目链接起来,会有帮助吗ect?TeamCode/build.gradle是否只有
apply from:'../build.common.gradle'
行?如果是这样,那么
sourceSet
更改应该转到build.common.gradle,我想。我刚刚完全重新构建了项目,我仍然不知道问题是什么,但在重新构建它时它似乎已经修复。
import {NativeModules} from 'react-native';
module.exports = NativeModules.MyModule;
import java.util.regex.Pattern

apply plugin: 'com.android.application'

android {

    compileSdkVersion 23
    buildToolsVersion '23.0.3'

    signingConfigs {
        debug {
            keyAlias 'androiddebugkey'
            keyPassword 'android'
            storeFile rootProject.file('libs/ftc.debug.keystore')
            storePassword 'android'
        }
    }

    defaultConfig {
        applicationId 'com.qualcomm.ftcrobotcontroller'
        minSdkVersion 19
        targetSdkVersion 19

        /**
         * We keep the versionCode and versionName of robot controller applications in sync with
         * the master information published in the AndroidManifest.xml file of the FtcRobotController
         * module. This helps avoid confusion that might arise from having multiple versions of
         * a robot controller app simultaneously installed on a robot controller device.
         *
         * We accomplish this with the help of a funky little Groovy script that maintains that
         * correspondence automatically.
         *
         * @see <a href="http://developer.android.com/tools/building/configuring-gradle.html">Configure Your Build</a>
         * @see <a href="http://developer.android.com/tools/publishing/versioning.html">Versioning Your App</a>
         */
        def manifestFile = project(':FtcRobotController').file('src/main/AndroidManifest.xml');
        def manifestText = manifestFile.getText()
        //
        def vCodePattern = Pattern.compile("versionCode=\"(\\d+(\\.\\d+)*)\"")
        def matcher = vCodePattern.matcher(manifestText)
        matcher.find()
        def vCode = Integer.parseInt(matcher.group(1))
        //
        def vNamePattern = Pattern.compile("versionName=\"(.*)\"")
        matcher = vNamePattern.matcher(manifestText);
        matcher.find()
        def vName = matcher.group(1)
        //
        versionCode vCode
        versionName vName
    }

    // Advanced user code might just want to use Vuforia directly, so we set up the libs as needed
    buildTypes {
        release {
            // Disable debugging for release versions so it can be uploaded to Google Play.
            //debuggable true
            ndk {
                abiFilters "armeabi-v7a"
            }
        }
        debug {
            debuggable true
            ndk {
                abiFilters "armeabi-v7a"
            }
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    sourceSets.main {
        jni.srcDirs = []
        jniLibs.srcDir rootProject.file('libs')
    }
}

repositories {
    flatDir {
        dirs rootProject.file('libs')
    }
}

apply from: 'build.release.gradle'
/**
 * Top-level build file for ftc_app project.
 *
 * It is extraordinarily rare that you will ever need to edit this file.
 */

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
    }
}

apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    lintOptions {
        abortOnError false
    }
    sourceSets {
        main {
            manifest.srcFile 'TeamCode/src/main/AndroidManifest.xml'
        }
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.facebook.react:react-native:+'
}

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"
        }
    }
}
android {
    //...
    sourceSets {
        main {
            // Like this...
            java.srcDirs += 'TeamCode/src/main/java'
            // ...or maybe, like that...
            java.srcDirs += 'android/TeamCode/src/main/java'
            // Dirty, extreme alternative...
            java.srcDirs += '/Users/zoe/saas/robotics/ftcnative/android/TeamCode/src/main/java'
        }
    }
}