Mah*_*eed 7 java android gradle android-studio android-gradle-plugin
我是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
Run Code Online (Sandbox Code Playgroud)
请帮助我!我花了整整一天的时间来解决它没有结果!
MyProject
- app
- myjavalibrary (pure java library)
- myandroidlibrary (android library)
Run Code Online (Sandbox Code Playgroud)
现在依赖关系如下:
"app" depends on -> "myjavalibrary"
"myjavalibrary" depends on -> "myandroidlibrary"
Run Code Online (Sandbox Code Playgroud)
每个模块的Gradle文件如下:
build.gradle对于app:
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')
}
Run Code Online (Sandbox Code Playgroud)
build.gradle对于myjavalibrary:
apply plugin: 'java'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':myandroidlibrary')
}
Run Code Online (Sandbox Code Playgroud)
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'
}
Run Code Online (Sandbox Code Playgroud)
settings.gradle:
include ':app', ':myjavalibrary', ':myandroidlibrary'
Run Code Online (Sandbox Code Playgroud)
现在,当我同步gradle文件时,它显示以下错误:
D:\MyTestCodes\MyTestApplication\app\build.gradle
Warning:Module version MyTestApplication:myjavalibrary:unspecified depends on libraries but is a jar
Run Code Online (Sandbox Code Playgroud)
警告是由纯jave myjavalibrary模块引起的myandroidlibrary,它依赖于一个Android库.
Gradle警告你,纯java模块对Android特定的东西myandroidlibrary(如Android资源,资产等)一无所知.通过具有这种依赖性(纯java到android库一个),你可能会丢失一些你期望的东西.
一个更清晰的依赖方向将是从android库到纯java库的方向.在这种情况下,Gradle不会给你任何警告.
如果您想从 java 代码创建 Android 应用程序项目,请使用apply plugin: 'com.android.application'.
如果您想从 java 代码创建库项目,请使用apply plugin: 'com.android.library'.
如果您想使用预构建的 jar 文件,请不要为它们创建任何项目。libs只需将它们添加到依赖于它们的项目、文件夹中即可。他们compile fileTree(dir: 'libs', include: ['*.jar'])会dependencies照顾他们。
| 归档时间: |
|
| 查看次数: |
7907 次 |
| 最近记录: |