Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.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 在Android Studio(Intellij?)中独立运行具有源依赖关系的模块_Java_Android_Intellij Idea_Android Studio - Fatal编程技术网

Java 在Android Studio(Intellij?)中独立运行具有源依赖关系的模块

Java 在Android Studio(Intellij?)中独立运行具有源依赖关系的模块,java,android,intellij-idea,android-studio,Java,Android,Intellij Idea,Android Studio,我正在使用Android studio,但这可能是一个一般的Intellij问题(我习惯于eclipse)。这看起来应该非常简单,但我想不出来 我希望能够独立运行项目中的任何一个模块,这与我理解模块的用途有关。直到现在,当我想从我的“testmodule”模块中的“app”模块调用代码时,这一切都很好。Android Studio允许我导入所需的代码,在我尝试构建模块之前不会出现任何问题。然后我得到了预期的“未找到包”错误。因此,我尝试在我的“testmodule”build.gradle中添加

我正在使用Android studio,但这可能是一个一般的Intellij问题(我习惯于eclipse)。这看起来应该非常简单,但我想不出来

我希望能够独立运行项目中的任何一个模块,这与我理解模块的用途有关。直到现在,当我想从我的“testmodule”模块中的“app”模块调用代码时,这一切都很好。Android Studio允许我导入所需的代码,在我尝试构建模块之前不会出现任何问题。然后我得到了预期的“未找到包”错误。因此,我尝试在我的“testmodule”build.gradle中添加以下内容:

main.java.srcDirs '../app/src/main/java'
这会导致我的“应用程序”模块中的两个程序包导入语句失败。其中一个失败的包是在我的“应用程序”清单中定义的包,另一个是在我的“应用程序”build.gradle中指定的包

sourceSets {
    main.java.srcDirs += '../../connectorAPI/trunk/src'
}
我还试图使一个模块依赖于另一个模块,但根据我在堆栈溢出(以及模糊的Android Studio错误)中读到的内容,一个模块必须是库文件。这显然不起作用,因为我想运行任何一个。我很想只复制我需要的代码,但是每次在版本控制中我都需要更改这两个代码,这是一场噩梦

在eclipse中,您只需右键单击并链接源代码。我无法想象这是不可能的,甚至是不寻常的,所以我一定错过了一些简单的事情。。。有人能帮我吗

build.gradle测试模块

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.example.XXXXX.testmodule"
        minSdkVersion 15
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.google.android.gms:play-services:+'
}
build.gradle应用程序

apply plugin: 'com.android.application'

android {
    compileSdkVersion 19
    buildToolsVersion "21.1.2"
    defaultConfig {
        applicationId "com.XX.XXX.XXX.XXX"
        minSdkVersion 15
        targetSdkVersion 19
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    packagingOptions {
        exclude 'META-INF/LGPL2.1'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }
    sourceSets {
        main.java.srcDirs += '../../connectorAPI/trunk/src'
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:19.1.0'
    compile 'com.google.android.gms:play-services:+'
    // Add the ArcGIS Android 10.2.5 API
    compile 'com.esri.arcgis.android:arcgis-android:10.2.5'
    compile 'com.googlecode.json-simple:json-simple:1.1'
}

我可能会迟到几年,但我要做的是:将两个模块声明为库,并创建另外两个作为应用程序。然后,如果需要的话,您可以轻松地导入这两个库,同时仍然有两个应用程序


对于将出现的重复依赖性问题,您只需在build.gradle中分别添加一个exclude语句。

review-。如果您的模块属于库类型,请将其定位在./libraries下。。设置gradle->include':app','':libraries:myLib'./app/build.gradle.dependencies->编译项目(':libraries:myLib')这就是问题所在,我希望能够同时运行两个模块,这样两个模块都不能成为库模块,尝试将两个模块定位在AS项目的“应用程序”级别下,并具有循环依赖关系…据我所知,这就是我设置它的方式。当我在windows资源管理器上查看文件结构时,app和testmodule模块都位于项目文件夹下的同一级别,请尝试删除“build.gradle”中的依赖项,并只参考相应android.manifest中的其他模块“main”。如果它无法构建,那么我想您应该回到循环依赖,并且应该阅读gradle.depenciences