亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

導入moudle作為自己工程的依賴庫進行使用

標簽:
Android

在我们有两个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!

原文链接:http://www.apkbus.com/blog-866962-76456.html

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消