导入moudle作为自己工程的依赖库进行使用
2017-04-12 16:36
323 查看
为自己做一下记录 毕竟新手小白还是需要站在前人的肩膀上才能继续前行啊。。。
第三方网站看来的找不到原主的链接。。。
http://www.68idc.cn/help/buildlang/ask/20150819509626.html
尊重劳动成果,转载请注明出处:
关注新浪微博:@于卫国
邮箱:yuweiguocn@gmail.com
在我们有两个Android Studio工程的情况时,我们想使用一个作为library工程导入到另一个工程作为一个module。我们可以使用Android
Studio很容易的做到。
让我们假设我们有两个工程:MyApplication和MyLibrary,我们想导入MyLibrary到MyApplication作为一个module。
首先我们需要从MyLibrary工程中找到module中的build.gradle文件,它通常在app目录下,除非你修改了module的名称。
注意builde.gradle文件的plugin是‘com.android.application’。为了使用这个工程作为一个library工程,,我们需要修改为 ‘com.android.library’。文件的内容就像这样:
试着sync一下工程,会出现一个错误: Library projects cannot set applicationId(类工程不能设置applicationId)。
我们可以删除gradle文件中的applicationId这行,在defaultConfig 括号里面。
PS 1:这里注意一下:原作似乎已经很久远或者没遇到类似问题所以没说,如果你想导入的MyLibrary工程里包含switch语句在ADT14以上的版本是会报错的。因为ADT14之后如果module类型为library则R文件的变量定义是public static而不是public static final,这样就导致无法在switch语句块中作为变量,会报下面的错
解决方法也很简单 Alt+Enter 会自动提示你把switch语句块转化为if else语句块
MyLibrary 工程就修改完了。
然后我们在MyApplication 工程中导入
MyLibrary 作为一个module。
在MyApplication 工程中, 点击File -> New -> Import Module。
出现一个对话框
从MyLibrary工程中找到你想要导入的Module目录。通常它是app module除非你给了它另一个名称。
如果在MyApplication工程中Module使用相同的名称将会出现错误。为了从一个library工程导入一个修改的Module,我们可以给它一个版本号在Module名称设置框。
修改Module的名称为my-library,导入成功。
到这一步差不多已经完成,最后一步是在MyApplication 工程中修改依赖。
很多人会忘了做这一步。
打开工程结构对话框,选择app Module(可以有别的名称),在右侧点击依赖标签。
找到加号并点击它,从弹出菜单中选择module依赖。
然后选择我们刚从MyLibrary工程中导入的library module。
点击OK,就完成了。
PS 2 :你妹哟 并不能完成好吗。。。这里还有一个情况 当你的module里面写了application进行初始化同时你的主module也有application的话也会报错
这个问题也不用上网去找,因为我这里是application重复了,也有的是theme或者icon重复导致出错。只要注意看咱studio的提示就可以解决了。
我这里就是跟着别人改了theme icon,并没有什么卵用,注意看右下角的Grandle Console,按照这里来解决咱们的问题才是对症下药。
IDE会在MyApplication/app/build/gradle file文件添加好依赖。
依赖部分就像下面的一样:
dependencies { compile fileTree(dir: 'libs',
include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0' compile
project(':my-library')
}
它可能工作的挺好,但这有一个很重要的问题,MyLibrary工程有它自己的依赖。例如,MyApplication和MyLibrary使用support libraries,这有可能会发生冲突。
我们可以在gradle中通过transitive配置依赖避免这个问题。
我们可以修改这行
compile project(':my-library')
为
compile(project(':my-library')){
transitive=false;
}
这个问题就可以避免。Done!
That’s all. Happy coding!
第三方网站看来的找不到原主的链接。。。
http://www.68idc.cn/help/buildlang/ask/20150819509626.html
尊重劳动成果,转载请注明出处:
关注新浪微博:@于卫国
邮箱:yuweiguocn@gmail.com
在我们有两个Android Studio工程的情况时,我们想使用一个作为library工程导入到另一个工程作为一个module。我们可以使用Android
Studio很容易的做到。
让我们假设我们有两个工程:MyApplication和MyLibrary,我们想导入MyLibrary到MyApplication作为一个module。
首先我们需要从MyLibrary工程中找到module中的build.gradle文件,它通常在app目录下,除非你修改了module的名称。
注意builde.gradle文件的plugin是‘com.android.application’。为了使用这个工程作为一个library工程,,我们需要修改为 ‘com.android.library’。文件的内容就像这样:
试着sync一下工程,会出现一个错误: Library projects cannot set applicationId(类工程不能设置applicationId)。
我们可以删除gradle文件中的applicationId这行,在defaultConfig 括号里面。
PS 1:这里注意一下:原作似乎已经很久远或者没遇到类似问题所以没说,如果你想导入的MyLibrary工程里包含switch语句在ADT14以上的版本是会报错的。因为ADT14之后如果module类型为library则R文件的变量定义是public static而不是public static final,这样就导致无法在switch语句块中作为变量,会报下面的错
解决方法也很简单 Alt+Enter 会自动提示你把switch语句块转化为if else语句块
MyLibrary 工程就修改完了。
然后我们在MyApplication 工程中导入
MyLibrary 作为一个module。
在MyApplication 工程中, 点击File -> New -> Import Module。
出现一个对话框
从MyLibrary工程中找到你想要导入的Module目录。通常它是app module除非你给了它另一个名称。
如果在MyApplication工程中Module使用相同的名称将会出现错误。为了从一个library工程导入一个修改的Module,我们可以给它一个版本号在Module名称设置框。
修改Module的名称为my-library,导入成功。
到这一步差不多已经完成,最后一步是在MyApplication 工程中修改依赖。
很多人会忘了做这一步。
打开工程结构对话框,选择app Module(可以有别的名称),在右侧点击依赖标签。
找到加号并点击它,从弹出菜单中选择module依赖。
然后选择我们刚从MyLibrary工程中导入的library module。
点击OK,就完成了。
PS 2 :你妹哟 并不能完成好吗。。。这里还有一个情况 当你的module里面写了application进行初始化同时你的主module也有application的话也会报错
Error:Execution failed for task ':app:processDebugManifest'
这个问题也不用上网去找,因为我这里是application重复了,也有的是theme或者icon重复导致出错。只要注意看咱studio的提示就可以解决了。我这里就是跟着别人改了theme icon,并没有什么卵用,注意看右下角的Grandle Console,按照这里来解决咱们的问题才是对症下药。
IDE会在MyApplication/app/build/gradle file文件添加好依赖。
依赖部分就像下面的一样:
dependencies { compile fileTree(dir: 'libs',
include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0' compile
project(':my-library')
}
它可能工作的挺好,但这有一个很重要的问题,MyLibrary工程有它自己的依赖。例如,MyApplication和MyLibrary使用support libraries,这有可能会发生冲突。
我们可以在gradle中通过transitive配置依赖避免这个问题。
我们可以修改这行
compile project(':my-library')
为
compile(project(':my-library')){
transitive=false;
}
这个问题就可以避免。Done!
That’s all. Happy coding!
相关文章推荐
- 导入moudle作为自己工程的依赖库进行使用
- 在自己的工程中使用iconv进行编码转换
- 怎样将自己的工程改造成库,并上传到Github作为依赖
- 在自己的工程中使用iconv进行编码转换
- Android Studio如何导入一个Android Studio项目作为依赖使用?
- android studio 导入项目作为主工程依赖库
- 怎样将自己的工程改造成库,并上传到Github作为依赖
- 将GitHub上下载的项目工程作为Module导入自己的项目中
- Android studio 导入依赖工程(导入其他工程作为lib)
- 使用 maven 插件 maven-shade-plugin 对可执行 java 工程及其全部依赖 jar 进行打包
- 记录eclipse 外部导入的工程无法使用自己定义的代码风格问题
- [导入]自定义IHttpHandlerFactory使用Unity对ASP.NET Webform页面进行依赖注入
- 使用 maven 插件 maven-shade-plugin 对可执行 java 工程及其全部依赖 jar 进行打包
- 关于如何在Android源码目录中建立自己的C工程,并用mm命令单独进行该C工程模块的编译,以及Android.mk的使用介绍(2)
- 使用 maven 插件 maven-shade-plugin 对可执行 java 工程及其全部依赖 jar 进行打包
- 如何将AD原有库导入自己的工程使用
- Java之——使用 maven 插件 maven-shade-plugin 对可执行 java 工程及其全部依赖 jar 进行打包
- 使用github作为maven仓库发布自己的jar包依赖
- Qt程序发行Linux版,软件打包知识(patchelf 工具修改依赖库,确认 qmake -v 是自己使用的Qt版本,否则用export PATH进行修改)good
- 关于如何在Android源码目录中建立自己的C工程,并用mm命令单独进行该C工程模块的编译,以及Android.mk的使用介绍(1)