首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在自定义java库模块中编译android模块时,分级警告“未指定依赖于库,但是一个jar”

在自定义java库模块中编译android模块时,分级警告“未指定依赖于库,但是一个jar”
EN

Stack Overflow用户
提问于 2015-04-21 18:34:20
回答 2查看 8.6K关注 0票数 7

我是一只生活在格拉德尔的新蜜蜂。我有一个简单的项目结构(如下图所示),它有一个主要的android应用程序模块、一个android模块(myandroidlibrary)和一个纯java模块(myjavalibrary)。它们有简单的依赖项,app -> myjavalibary和myjavalibary -> myandroidlibrary (请参阅图1)。下面)。下面也给出了Gradle文件快照。

但是,在同步gradle时,它会产生以下错误:

代码语言:javascript
运行
复制
 D:\MyTestCodes\MyTestApplication\app\build.gradle
 Warning:Module version MyTestApplication:myjavalibrary:unspecified depends on libraries but is a jar

请帮帮我!我花了一整天的时间来解决这个问题,但没有结果!

代码语言:javascript
运行
复制
MyProject
  - app
  - myjavalibrary  (pure java library)
  - myandroidlibrary (android library)

现在,依赖项如下:

代码语言:javascript
运行
复制
"app" depends on -> "myjavalibrary"
"myjavalibrary" depends on -> "myandroidlibrary"

每个模块的分级文件如下:

build.gradle for app

代码语言:javascript
运行
复制
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 for myjavalibrary

代码语言:javascript
运行
复制
apply plugin: 'java'

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile project(':myandroidlibrary')
}

用于myandroidlibrarybuild.gradle

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
include ':app', ':myjavalibrary', ':myandroidlibrary'

现在,当我同步gradle文件时,它显示了以下错误:

代码语言:javascript
运行
复制
 D:\MyTestCodes\MyTestApplication\app\build.gradle
 Warning:Module version MyTestApplication:myjavalibrary:unspecified depends on libraries but is a jar 
EN

回答 2

Stack Overflow用户

发布于 2016-02-20 14:28:35

警告是由纯jave myjavalibrary模块依赖于myandroidlibrary库(即myandroidlibrary库)引起的。

Gradle警告您,纯java模块对myandroidlibrary中的Android特定内容一无所知(比如Android资源、资产等)。通过拥有这种依赖(纯java到android库),您可能会失去一些您希望拥有的东西。

一个更清晰的依赖方向应该是从android库到纯java库。在这种情况下,Gradle不会给您任何警告。

票数 8
EN

Stack Overflow用户

发布于 2015-05-07 16:25:24

如果您想从java代码创建一个Android应用程序项目,请使用apply plugin: 'com.android.application'

如果要从java代码创建库项目,请使用apply plugin: 'com.android.library'

如果您想使用预先生成的jar文件,请不要为它们创建任何项目。只需将它们添加到项目中,添加到依赖于它们的libs文件夹中即可。compile fileTree(dir: 'libs', include: ['*.jar'])dependencies中会照顾他们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29780418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档