我在Android Studio 2.3中工作,我想使用我在github(https://github.com/henrychuangtw/Android-ChatHead)上找到的库,而且没有Jar文件。 在settings.gradle中,我已经声明了库所在的目录,如下所示:
include ':app'
include ':Android-ChatHead'
project(':Android-ChatHead').projectDir=new File('/Users/lorand/AndroidStudioProjects/Doritest/android_chatHeads')
我还将库添加到build.gradle依赖项中:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':Android-ChatHead')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.1.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
}
在此之后,如果我同步,我会收到此错误:
Gradle sync失败:Project:app声明了一个依赖项 配置'编译'配置'默认'不是 在项目描述符中声明:Android-ChatHead。请教 IDE日志了解更多详细信息(帮助|显示日志)
如果我将/ app添加到settings.gradle文件路径的末尾,则会收到以下错误:
Error:Dependency Doritest:Android-ChatHead:unspecified on project core resolves to an APK archive which is not supported as a compilation dependency.
File: /Users/lorand/AndroidStudioProjects/Doritest/android_chatHeads/Android-ChatHead/app/build/outputs/apk/Android-ChatHead-release-unsigned.apk
我无法弄清楚我应该做些什么。
答案 0 :(得分:2)
就我所知,你无法添加这样的依赖关系
我假设您没有要使用的依赖jar,因此您必须添加Android-ChatHead
作为模块
为此,请按照以下步骤操作:
在“源目录”框中,键入 或选择要导入的模块的目录:
如果要导入一个模块,请指明其根目录。
如果要从项目导入多个模块,请指明项目 夹。对于文件夹内的每个模块,将出现一个框 表示源位置和模块名称。确保导入 对于要导入的每个模块,都会选中框。
输入您想要的模块名称 在模块名称字段中。
单击“完成”。
在您的settings.gradle中添加
include ':app', ':Android-ChatHead'
在你的app build.gradle add的依赖项部分中添加
compile project(':Android-ChatHead')
清理/构建项目
答案 1 :(得分:2)
P.Lorand正在做的是引用模块而不是复制,因此他对模块所做的任何编辑都会影响引用该模块的所有其他应用程序。
使用Ivan Milisavljevic方式,模块将被复制到应用程序。对导入的模块进行的编辑仅在应用程序中有效;有时候是好主意,有时是烦恼。
应用程序具有应用程序根目录和应用程序模块;通常命名为app 模块的根是模块本身。
改变这个:
project(':Android-ChatHead').projectDir=new File('/Users/lorand/AndroidStudioProjects/Doritest/android_chatHeads')
到
project(':Android-ChatHead').projectDir=new File('/Users/lorand/AndroidStudioProjects/Doritest/android_chatHeads/moduleName')
可能有帮助。
另外,如果要将应用程序转换为模块,请确保重命名app
,同名的两个模块app
是灾难的承诺。
它包含一个app文件夹,因此它是一个应用程序,而不是一个模块
build.gradle包含一行apply plugin: 'com.android.application'
,因此application
位需要替换为library
。
评论applicationId "henrychuang.tw.chatheadmsg"
。
将模块名称应用重命名为其他内容;我从来没有手动完成它,在项目选项卡的app folfder上使用android studio ctl + alt + r。
然后你应该没事。首先尝试通过副本导入。