我是Gradle的新人。我有一个简单的项目结构(如下图所示),有一个主要的Android应用程序模块,一个android模块(myandroidlibrary)和一个纯java模块(myjavalibrary)。他们有简单的依赖关系,app - > myjavalibary和myjavalibary - > myandroidlibrary(请参见下图)。 Gradle文件快照也在下面给出。
但是,在同步gradle时会产生以下错误:
D:\MyTestCodes\MyTestApplication\app\build.gradle
Warning:Module version MyTestApplication:myjavalibrary:unspecified depends on libraries but is a jar
请帮帮我!我花了整整一天的时间来解决它没有结果!
MyProject
- app
- myjavalibrary (pure java library)
- myandroidlibrary (android library)
现在依赖关系如下:
"app" depends on -> "myjavalibrary"
"myjavalibrary" depends on -> "myandroidlibrary"
每个模块的Gradle文件如下:
build.gradle
应用:
apply plugin: 'com.android.application'
android {
// ommitting other detail
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.0.0'
compile project(':myjavalibrary')
}
build.gradle
myjavalibrary :
apply plugin: 'java'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':myandroidlibrary')
}
build.gradle
myandroidlibrary :
apply plugin: 'com.android.application'
android {
//ommiting other detail.
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.0.0'
}
settings.gradle
:
include ':app', ':myjavalibrary', ':myandroidlibrary'
现在,当我同步gradle文件时,它显示以下错误:
D:\MyTestCodes\MyTestApplication\app\build.gradle
Warning:Module version MyTestApplication:myjavalibrary:unspecified depends on libraries but is a jar
答案 0 :(得分:7)
警告是由纯jave myjavalibrary
模块引起的,该模块依赖于myandroidlibrary
个模块,这是一个Android库。
Gradle警告你,纯java模块对myandroidlibrary
的Android特定内容(如Android资源,资产等)一无所知。通过具有这种依赖性(纯java到android库一个),你可能会丢失一些你期望的东西。
一个更清晰的依赖方向将是从android库到纯java库的方向。在这种情况下,Gradle不会给你任何警告。
答案 1 :(得分:1)
如果您想从java代码创建Android应用程序项目,请使用apply plugin: 'com.android.application'
。
如果要从java代码创建库项目,请使用apply plugin: 'com.android.library'
。
如果要使用预先构建的jar文件,请不要为它们创建任何项目。只需将它们添加到项目中,放入libs
文件夹中,该文件夹依赖于它们。 compile fileTree(dir: 'libs', include: ['*.jar'])
中的dependencies
会照顾它们。