Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.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 需要另一个目录中的Gradle项目_Java_Android_Gradle_Android Library_Multi Project - Fatal编程技术网

Java 需要另一个目录中的Gradle项目

Java 需要另一个目录中的Gradle项目,java,android,gradle,android-library,multi-project,Java,Android,Gradle,Android Library,Multi Project,我有如下目录/项目设置: C:\ _dev\ Projects\ Logger MyProject Logger是一个使用Gradle的Android库项目。MyProject是一个标准的Android项目,需要使用Logger库 我正在使用Android Studio,并尝试将记录器添加到外部库中。虽然这在开发过程中起作用,但我得到的信息是,在构建时找不到该类 我是Gradle的新手,但在我的build.Gradle项目

我有如下目录/项目设置:

C:\
    _dev\
        Projects\
            Logger
            MyProject
Logger是一个使用Gradle的Android库项目。MyProject是一个标准的Android项目,需要使用Logger库

我正在使用Android Studio,并尝试将记录器添加到外部库中。虽然这在开发过程中起作用,但我得到的信息是,在构建时找不到该类

我是Gradle的新手,但在我的build.Gradle项目中尝试了以下方法:


尝试将依赖项添加到全局“依赖项”部分,而不是“android>依赖项”。 在开发过程中,使用“android”配置,但不打包运行时

dependencies {
    compile 'com.android.support:gridlayout-v7:18.0.0'
    compile 'com.android.support:appcompat-v7:18.0.0'
    compile files("../Logger")
}
还值得考虑建立多项目渐变配置,
使用共享父目录中的build.gradle和settings.gradle,如下所示:

最简单的方法是将
MyProject
作为子项目,将
Logger
项目作为多项目

settings.gradle
MyProject
目录中:

include ":logger"
project(":logger").projectDir = file("../logger")
MyProject
build.gradle
中,您现在可以将此库作为项目引用:

dependencies {
     compile 'com.android.support:gridlayout-v7:18.0.0'
     compile 'com.android.support:appcompat-v7:18.0.0'
     compile project(":logger")
}
Android Studio 2.2.3:

添加到settings.gradle

include ':app', ':new_lib'
project(':new_lib').projectDir = new File('../new_lib/app')
  • 该路径必须与正在工作的项目的根相对 开
  • 您正在引用的模块必须引用其“应用程序” 目录

然后编辑项目结构|模块以设置依赖项。

像这样吗?不幸的是,我已经试过了。include':logger'项目(':logger')。projectDir=新文件(settingsDir,../SysLog')将此行
includeFlat'prjname'
写入MyProject\settings.gradle。如果项目是并排的/平坦的/同一层,gradle auto会接受这一点。此外,it项目也会自动在intellij idea详细信息中弹出:这个问题是我经常访问的,几乎每次我做一个新的gradle项目时,我都会把它放在收藏夹中。只是尝试了一下,不幸没有成功。仍然会出现同样的错误。谢谢,这正是我需要的。我一添加这个,项目就编译成功了。你能使用Gradle主目录的Gradle.properties文件中的属性值吗?这正是我刚才推断的我可能能做到的,也是我想要的答案:-我在设置中得到了相同的情况和此解决方案。Gradle为meThanks工作,效果很好,我也在这里阅读以加深理解,我在Android Studio中尝试了这一点,但现在我的根项目不再被视为一个库,构建变体只显示您所谓的:new_lib”作为可用模块。原始“应用程序”不再在模块列表中。
include ':app', ':new_lib'
project(':new_lib').projectDir = new File('../new_lib/app')