在开发项目的时候或多或少都会引用第三方开源工程库或者是自己已经写好的项目需要引用。
常见的方式分为三种:
- Jar 包的形式
- AndroidStudio 盛行的方式,在 app 的 build.gradle 文件的 dependencies 中 compile
- 引用一个完整的工程
对于 Jar 包形式 :
在 app 目录下新建一个 libs 文件夹,将需要导入的 Jar 包文件复制粘贴进去。
此时Jar包前面未显示三角形箭头代表还不可用。然后需要选中该Jar包,鼠标
右击 → Add As Library .
AndroidStudio 的 compile
在上述提到的文件中 compile 进需要的工程,然后重新编译。
例如:
compile 'com.google.code.gson:gson:2.4'
重点是下面这种,步骤也比前2个中复杂。
导入工程文件
主要分为以下几个步骤:
- 工程放入项目中
- 修改配置信息与主项目相同
- include项目(不太清楚应该怎么叫,暂时就这样说)
- compile项目到主项目
接下来详细的说下该怎么做:
一、将需要引入的项目复制粘贴到目标项目的跟目录下(与app目录并列,并且从电脑的
文件夹复制,不从AndroidStudio中)。
二、因为导入后是在同一个项目中,因此配置信息需要相同才能正常工作,否则会出现冲突。
打开需导入项目的 build.gradle 文件与主项目 app 级别下的build.gradle 文件进行对比 ,修改
几个配置信息。
主要修改的配置有4个地方:
- compileSdkVersion
- buildToolsVersion
- minSdkVersion
- targetSdkVersion
例如:
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
minSdkVersion 14
targetSdkVersion 23
versionCode 10
versionName "1.0.0"
}
三、在主项目中的 settings.gradle 文件中将项目 include 进去,用","隔开 :
include ':app',':volleyplus'
注意: 冒号后面的名称需要与被导入项目名称保持一致。
四、最后一步就是在 app 级别下的 build.gradle 文件中 compile ,由于此时
是导入一个本地的项目,因此应该这样写:
dependencies {
...
compile project(':volleyplus')
...
}
然后 AndroidStudio 会在顶部提示需要同步的提示,点击”Sync Now“等待同步
完成即可。
不过在有些情况会报如下错误:
Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : Attribute application@icon value=(@mipmap/ic_launcher) from AndroidManifest.xml:14:9-43
is also present at [com.pnikosis:materialish-progress:1.0] AndroidManifest.xml:13:9-45 value=(@drawable/ic_launcher).
Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:12:5-28:19 to override.
这是由于定义了相同的属性合并失败造成的。请移步查看解决方法