AndroidStudio中多个Module依赖同一个jar的解决方案

原创 2016年05月30日 15:59:13

方案: 将任意一个Module中的jar依赖为compile files('your jar name'),其他需要依赖的地方改为provided files('your jar name')并且删除compile fileTree(include: ['*.jar'], dir: 'libs)。即可  下面详细介绍为什么这样做以及案例


案例介绍


如 环信Module和自己app的Module都要用到定位sdk


1、在自己app的gradle中以compile引入如:

compile files('libs/AMap_Location_V2.4.1_20160414.jar')


2、在环信的Module的gradle中以provided的方式引入如:

provided files('libs/AMap_Location_V2.4.1_20160414.jar')


3、而且环信的gradle中不能存在compile fileTree(include: ['*.jar'], dir: 'libs')




==========================分割线=================================


AndroidStudio中Module相当于Eclispe中的Library,这里不做过多介绍

多个Module依赖同一个jar,直接把jar放入对应需要的Module会导致编译报类冲突

这里就要讲一讲AndroidStudio中的依赖的几种方式


compile

compile是对所有的build type以及favlors都会参与编译并且打包到最终的apk文件中。


Provided

Provided是对所有的build type以及favlors只在编译时使用,类似eclipse中的external-libs,只参与编译,不打包到最终apk。


APK

只会打包到apk文件中,而不参与编译,所以不能再代码中直接调用jar中的类或方法,否则在编译时会报错


Test compile 

Test compile 仅仅是针对单元测试代码的编译编译以及最终打包测试apk时有效,而对正常的debug或者release apk包不起作用。


Debug compile

Debug compile 仅仅针对debug模式的编译和最终的debug apk打


Release compile

Release compile 仅仅针对Release 模式的编译和最终的Release apk打包。


我们需要用的是Provided,这样在写代码的时候可以在Module中正常使用jar中的类,但是要有一个Module以compile的方式依赖这个jar,这样编译的时候只有一个jar编译进apk。

注:使用Provided必须删除compile fileTree(include: ['*.jar'], dir: 'libs') 不然lib下的jar均按照compile方式引入到Module



搞定!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!



版权声明:本文为博主原创文章,可以随意转载

相关文章推荐

Android Studio 重复jar包冲突问题

Android Studio:Multiple dex files define Landroid/support/annotation/AnimRes 导入一个新项目,同时用到了v4,v7都...

Androidstudio中jar包重复或jar包里的类重复问题

Androidstudio中jar包重复或jar包里的类重复问题(第一篇文章就来讲讲最近开发刚遇到的问题) 自从Androidstudio被越来越多的人使用后,问题也就跟着出现了 androidstu...

Android Studio 取消打包某一个Jar包

在平时开发中可能会遇到在项目所使用到的jar包,不想打包到apk中,窒息王

compile、provided、compile files、compile project四者的区别

在一个Android项目的build.gradle中,dependencies闭包中有以下四种形式的声明: compile 'com.android.support:appcompat-v7:22....

安卓开发之引入第三方库导致jar包冲突解决办法

这几天的任务是将mapbox的工程合到程序中去,但是合并过程却出现了问题合并方法: 在app的build.gradle中添加dependencies { compile ('com.mapb...

AndroidStudio利用android-support-multidex解决65536问题64k问题

当你的应用程序和库引用达到一定规模,你遇到构建错误显示你的应用已经达到了一个Android应用程序构建体系结构的限制。上面的错误显示一个共同的数字:65536。这个数字是重要的,它代表了引用的总数,可...

Android Studio 里面的引用第三方库总结,以及compile、provided使用

Android Studio引用第三方库很方便,只需要一句代码就可以搞定,几种引用第三方库的方式,总结一下: 方式:1:它就会自动把这个包下载下来,并且引用它。节省git空间,而且修改版本也...

Android Studio 关于多个module引用同一jar包的问题

Android Studio 关于多个module引用同一jar包的问题 Error:Execution failed for task ':app:transformClassesWithJa...

Android Studio 单独编译一个 Module

现在我的一个 project 下面有多个 moudle ,一开始不知道如何单独编译某个 moudle , 现在记录下./grawdlew your_moudle_name:task_name
  • wxy318
  • wxy318
  • 2016-07-11 10:16
  • 3514

android studio 编译高级篇-gradle多版本编译,定制任务

导读 本文旨在介绍Gradle构建的一些高级功能,包含了多版本编译、定制任务等功能: 为相同的app构建多个版本如果在Gradle的过程中添加定制的任务如何使用android库module ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)