导入Android工程作为Library Module流程及问题集
2017-06-17 15:28
323 查看
导入模块的主要流程:
一.在主工程中,点击File -> New -> Import Module。导入的目录应该是模块工程目录
里面的app文件夹。
二.修改模块工程的build.gradle文件:
1.修改“com.android.application”为“com.android.library”;
2.删除“applicationId”这行。
三.修改主工程的依赖。
1.打开工程结构对话框,选择app Module,在右侧点击依赖标签;
2.找到加号并点击,从弹出菜单中选择“3 module dependencies”;
3.选择需要添加的模块。
导入工作基本完成。
以下是遇到的问题集:
一.manifest错误。由于模块不再是app,即作如下修改:
<application>
application没有任何的属性。
在模块manifests文件中,删除与主工程的manifest文件中相同的标签。例如:所需的权限,百度,友盟的key等等。
二.普通的jar包依赖冲突。可以使用exclude实现。eg:
compile(project(':qianwanli')) {
exclude group: 'com.squareup.okhttp'
}
或者
compile(project(':qianwanli')) {
exclude module: 'okhttp'
}
三.特殊的jar包依赖冲突。例如:百度定位SDK,由于不知道group,module是什么,试了很多都没有成功。
error信息:com.baidu.location.a冲突。
最后成功的方法:把百度SDK,单独新建成一个同等的module,且导入工程。然后各自依赖compile project(':BaiduLocSDK')。BaiduLocSDK是我的模块名称。
这样,再也没有百度SDK的冲突。
四.针对相同的so库文件,直接保留主工程里面的so库文件,删除子模块里面相同的so文件。
五.运行错误:找不到id错误,或者inflate构建错误。由于编译后模块中的资源和主工程的资源是合并在一起的,为了避免重名问题,需要对模块中资源进行重命名。
确保模块之间的res资源文件的文件名不要有相同的,否则运行exception。例如:string,layotu布局文件。若有相同的,建议重命名子模块的文件名。
一.在主工程中,点击File -> New -> Import Module。导入的目录应该是模块工程目录
里面的app文件夹。
二.修改模块工程的build.gradle文件:
1.修改“com.android.application”为“com.android.library”;
2.删除“applicationId”这行。
三.修改主工程的依赖。
1.打开工程结构对话框,选择app Module,在右侧点击依赖标签;
2.找到加号并点击,从弹出菜单中选择“3 module dependencies”;
3.选择需要添加的模块。
导入工作基本完成。
以下是遇到的问题集:
一.manifest错误。由于模块不再是app,即作如下修改:
<application>
application没有任何的属性。
在模块manifests文件中,删除与主工程的manifest文件中相同的标签。例如:所需的权限,百度,友盟的key等等。
二.普通的jar包依赖冲突。可以使用exclude实现。eg:
compile(project(':qianwanli')) {
exclude group: 'com.squareup.okhttp'
}
或者
compile(project(':qianwanli')) {
exclude module: 'okhttp'
}
三.特殊的jar包依赖冲突。例如:百度定位SDK,由于不知道group,module是什么,试了很多都没有成功。
error信息:com.baidu.location.a冲突。
最后成功的方法:把百度SDK,单独新建成一个同等的module,且导入工程。然后各自依赖compile project(':BaiduLocSDK')。BaiduLocSDK是我的模块名称。
这样,再也没有百度SDK的冲突。
四.针对相同的so库文件,直接保留主工程里面的so库文件,删除子模块里面相同的so文件。
五.运行错误:找不到id错误,或者inflate构建错误。由于编译后模块中的资源和主工程的资源是合并在一起的,为了避免重名问题,需要对模块中资源进行重命名。
确保模块之间的res资源文件的文件名不要有相同的,否则运行exception。例如:string,layotu布局文件。若有相同的,建议重命名子模块的文件名。
相关文章推荐
- 导入一个AndroidStudio工程作为一个Library Module
- eclipse Android 工程在Libs导入第三方jar / Android工程作为library为其他工程提供引用
- 导入一个AndroidStudio工程作为一个Library Module-----待整理
- 导入一个AndroidStudio工程作为一个Library Module
- 导入一个AndroidStudio工程作为一个Library Module
- 导入一个AndroidStudio工程作为一个Library Module
- 导入一个AndroidStudio工程作为一个Library Module
- Eclipse 导入Android工程,中文注释乱码问题
- eclipse新建android工程出现This template depends on Android Support Library问题
- 【Android问题】Android导入一个工程时提示 Invalid project description的解决方法
- 将Android源码作为一个工程导入到Eclipse
- 使用android工程作为类库Unable to resolve superclass of L问题的解决
- eclipse导入已存在的android工程时遇到AndroidManifest.xml文件出错的问题(红叉)
- 关于android导入工程时出现的@Override错误问题的解决<转>
- 关于android导入工程时出现的@Override错误问题的解决
- 关于android导入工程时出现的@Override错误问题的解决(转)
- android 引入另一个工程作为library
- Eclipse导入Android工程,出现default与Displaying的问题解决
- android eclipse 导入工程的问题
- 解决导入android工程后main.xml Graphical Layout不能正常显示的问题