如何解决android studio导入library多个library库含有相同引用

一:导入如百度地图等的外部类。
步骤:1.首先 将androidstudio项目显示切换到 project 状态显示项目
& & & & &2.然后添加.jar文件,将所有的.jar文件放入libs文件夹内(libs文件夹就在项目文件夹下),然后在引入的.jar文件上右键然后点击 Add As Library... OK jar文件引入。
& & & & &3.添加.so文件,在项目下的src目录下的main目录下新建jniLibs文件夹,然后将so文件连带着他外面的文件夹整个复制到jniLibs文件夹下(注意:so文件不能直接存在于jniLibs文件夹下,需要存在于如armeabi等文件中放入jniLibs文件夹下),倒入文件后在该文件的build.gradle中添加。(为了保证不出错,可以将.jar文件放入JinLibs将so文件放入libs文件中,使得libs跟jniLibs文件夹下都存在so跟jar。)
sourceSets{
jniLibs.srcDirs = ['libs']
}}代码。具体放入位置如下:apply plugin: 'com.android.library'
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
minSdkVersion 11
targetSdkVersion 23
versionCode 1
versionName "1.0"
buildTypes {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
sourceSets{
jniLibs.srcDirs = ['libs']
}}dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile files('libs/BaiduLBS_Android.jar')}现在就可以使用外部类的方法了。二:将同项目的module作为依赖包引用1.选择你想作为library的module。选择他的build.gradle文件将最上方的代码apply plugin: 'com.android.application'改为apply plugin: 'com.android.library'。然后将下面的代码删去位置为:android下的defaultConfig下的applicationId ".mycframe"。删除后代码为
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
minSdkVersion 11
targetSdkVersion 23
versionCode 1
versionName "1.0"
buildTypes {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
sourceSets{
jniLibs.srcDirs = ['libs']
}}2.为主文件添加依赖 mac下使用以下操作:点击file-&project structure左边的module下选择你的主工程,然后右边点击dependencies,点击下方或者右方的+点开后在三个选项中选择module dependency,在弹出界面选择你刚刚修改作为library的midule文件 ok了。其实最简单的方法就是刚开始建立module的时候就作为library来新建。仔细去新建一个module来体会一下,在选择模式的时候选择library就可以啦出现错误:当你的程序需要引用两个及以上的module library或者其他的jar包是出现错误类型如下
Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.& com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK org/apache/log4j/xml/log4j.dtd
File1: /Users/minyuchun/androidwork/projectstudio/StarFaceFrame/app/build/intermediates/exploded-aar/StarFaceFrame/facelibrary/unspecified/jars/classes.jar
File2: /Users/minyuchun/androidwork/projectstudio/StarFaceFrame/app/build/intermediates/exploded-aar/StarFaceFrame/rylibrary/unspecified/jars/classes.jar
出现上述错误的原因是因为 你在引用的labrary中多个存在相同的包导致在打包是冲突 解决方式如下,在android下的 写packagingOptions{
  exclude 'org/apache/log4j/xml/log4j.dtd'
}''单引号中的内容为上述错误中APK后面的内容,按照上述的样式填写在 主的app.gradle 中,重新编译后运行,运行后还可能出现相同的错误 这时候请注意错误后面APK中的内容 此时应该与前一次出现的内容不相同。如果是这样的话继续按照上述的方式增加,循环最后就没有这个错误了。&
阅读(...) 评论()最近做项目用到了v7包,里面用到了包含v4。当我导入其他library里面也带了v4包导致冲突。
网上找了几种解决方法都不行:
1.删除其中一个v4包。不行,会报错。
2.把其中的一个包拷贝到另一个包所在的位置,将其覆盖。不行,还是会报错。
最后终于找个了问题所在,需要把library里order and export中jar包取消勾选。
具体步骤右键library——properties——Java Build Path——order and export,找到冲突jar包,如果没有找到Android Private Libraries,将前面的勾勾取消,再编译运行就可以了。
最后说两句,珍爱生命,远离Eclipse。Android Studio还是早点学起来吧,可以免去很多麻烦,github上很多开源库都不支持eclipse了。
本文已收录于以下专栏:
相关文章推荐
来源:JavAndroid
我要投稿 通过Maven中央库添加第三方jar包的时候,出现了重复加载jar包的问题,解决办法很简单去掉...
问题描述:
需求:要做个应用其中要集成环信EaseUI,将库依赖到Module时报如下错误:
Error:Execution failed for task ':app:transformClas...
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Landroid/su...
最近做项目,需要用到github上的Library,当我导入其他library里面也带了v4包导致冲突。
网上找了几种解决方法都不行:
1.删除其中一个v4包。不行,会报错。
1、主项目跟他的依赖lib要放在同一个目录才能在eclipse中export2、导入eclipse中导出的项目到studio后的配置:
(1)打开工作空间目录下的 gradle –& wrapper...
在eclipse中导入已有代码为Android工程时,编译出现错误,代码中引用
最近在做环信即时通讯,但是当我集成环信easeui的时候,出现了某些问题,,,,
后来经过我深思熟虑的思考,和不顾休息的查阅资料得知。。其实就是v4包冲突了,, 那么问题来了,怎么解决呢 。
Android 导入v7包常见错误,以及项目引用v7包错误解决,androidv7
        android下v4    v7   v21等包是android系统的扩展支持包,就想wi...
Android studio开发使用 使用到了 Facebook 开源的 Fresco框架,在编译时候出现如下:
Cause: com.android.dex.DexExcept...
1. 问题描述
Error:The number of method references in a .dex file cannot exceed 64K.
Error:Executi...
他的最新文章
讲师:王哲涵
讲师:韦玮
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)1725人阅读
android_studio(11)
在使用Android Studio 开发中,如遇到多个项目引用同一个library(源码)的情况时,会遇到在每个项目中都要有一套library的代码,对还在开发和维护中的library需要频繁的修改,这对同步就很麻烦了,下面提出以下方法供选择。当然最后会给出最合理的解决办法。
第一种方法是对library向每个引用的项目建立软连接。这样修改就会对每个引用同步修改.这种方法就是看起来会很臃肿,如果要引用多个library就很痛苦。
第二种就是maven 仓库的方式,将所有的library都上传到maven仓库,然后在各个工程中进行引用,当然这种是对稳定的library来说是最好的一种方式,但对于library需要开发和修改的就不太适合了。
第三种就是将所以的library作为一个工程使用,然后将所有的library都放入此工程中,然后在其他引用library的工程中,引入新建的工程,这样看起来和eclipse 引用library的结构就很像了,且可以放入多个library都不影响。下面就来看看这种解决方法,该如何实现。
首先新建一个工程,注意是工程,不是Stuio里面的Module,起一个容易理解的工程名称&CommonLibrary&。将需添加的library添加进CommonLibrary中,记得每个library也是需要有build.gradle&文件的,且配置项正确。
在需要引用的的工程中,需要在&settings.gradle&文件中添加引用代码如下:
include ':CommonLibrary'
project (':CommonLibrary').projectDir = new File('../CommonLibrary/')
include ':CommonLibrary:CommonsA'
其中CommonsA为项目要使用的公共library名称
然后在我们项目实际的model中修改&build.gradle&文件,需要在dependencies&中添加下面的代码。CommonsA和CommonsB都是要要引用的项目。
compile project (':CommonLibrary:CommonsA')
compile project (':CommonLibrary:CommonsB')
至此多个工程引用同一个lib的方法就基本完成,配置玩后sync下,然后build,看是否成功。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:693887次
积分:7334
积分:7334
排名:第3177名
原创:135篇
转载:262篇
评论:98条
(1)(3)(4)(1)(1)(1)(1)(11)(27)(1)(7)(1)(6)(2)(1)(2)(5)(10)(2)(5)(6)(3)(4)(7)(5)(6)(6)(3)(2)(3)(10)(5)(1)(3)(40)(27)(36)(7)(30)(24)(1)(4)(6)(2)(9)(2)(1)(12)(1)(4)(5)(1)(1)(20)(2)(1)(1)(2)(2)(1)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'当前位置: &
& android studio怎么引入第三方jar包?
android studio怎么引入第三方jar包?
类别:&&大小:813.00MB语言:简体中文&&授权:免费软件
  我们在使用android studio开发编程时,可能会需要链接引入第三方类库jar包,其实我们可以通过多种途径将其引入,但是除用者可能在操作的过程中会遇到第三方jar包重复加载的问题,当遇到这样的问题的时候,大家也不用着急,这里给大家准备了解决方法,大家可以一起看看。  android studio引入第三方jar包方法一:  在Android Studio(AS)的开发中,遇到引入外部类库或第三方jar包的情况,确实是件很恼人的事情。因为AS是基于Gradle构建,所以和传统的导入方式有些不一样。  笔者也曾为此头疼过好一阵,现在终于有了解决办法,拿出来和大家分享一下。  这里以导入Google Services library为例,具体操作步骤如下。  1. 打开你的buid.gradle文件。应该用哪一个呢?Project中的,还是Module中的?(如图所示,Module中的)  2 . 将google-play-services.jar这个jar包拷到指定的位置。原来可能是在这个目录下:$ANDROID-SDK/extras/google/google_play_services/libproject/google-play-services_lib/libs ,比如现在我把它放到了$GOOGLE_PLAY_LIB目录下。  3 . 如果你已经有了别的dependencies(如Android Studio Library),我们把它加到list当中去,也就是将你需要编译的部分,从dependencies中移到list里。  例如先前长这样:  List myDependencies = [&com.android.support:appcompat-v7:18.0.+&]dependencies { //moved into List above, so there'll be nothing here.}  4. 加入Google Play Library之后:  List myDependencies = [&com.android.support:appcompat-v7:18.0.+&, fileTree (dir: '$GOOGLE_PLAY_LIB', includes: ['*.jar'])]  PS:不要忘了把$GOOGLE_PLAY_LIB 改成你本地的目录,如 E://Android/Development/Lib  5. 修改dependencies里面的内容:  List myDependencies = [&com.android.support:appcompat-v7:18.0.+&, fileTree (dir: 'E://Android/Development/Lib', includes: ['*.jar'])]dependencies { compile myDependencies}  6. 然后就是耐心等待项目compile和make了。^_^  android studio引入第三方jar包方法二:  将第三方jar包加入到libs文件夹中  有两种方式将jar引入进工程目录:第一种是打开工程所在Project Structure,然后选择Dependencies,点击那个加号选择File Dependency ,然后再Libs文件夹中选择要导入的jar包,  然后点击确定,jar包就导入进来了。  第二种方式是:右键点击libs文件夹中的jar文件选择 add as Library...然后选择Model,这样也可以导入成功。  android studio引入第三方jar包方法三:  将第三方jar包加入到libs文件夹中,打开工程所在Project Structure,然后选择Dependencies,点击那个加号选择File Dependency ,然后再Libs文件夹中选择要导入的jar包。  两外还有一种方法是在project选中jar包点击右键&Add as library&,这种方法需要定位到项目的根目录,即build.gradle所在的目录。  dependencies  {  compile files('libs/android-support-v4.jar')  compile files('libs/xxxx.jar')  }  Android Studio导入第三方jar包出现包重复加载怎么办  添加第三方jar包的时候,出现了重复加载jar包的问题,解决办法很简单去掉一个不让它去加载就OK了  一、错误Error:Execution failed fortask ':app:dexDebug'.& com.mon.internal.LoggedErrorException: Failed to run command: & &F:\zsl\sdk\build-tools\21.1.2\dx.bat --dex --output F:\zsl\Android\pro\RecipesDaquan\app\build\intermediates\dex\debug --input-list=F:\zsl\Android\pro\RecipesDaquan\app\build\intermediates\tmp\dex\debug\inputList.txtError Code: & &2Output: & &UNEXPECTED TOP-LEVEL EXCEPTION: & &com.android.dex.DexException:&strong& &span style=&color:#3333&&Multiple dex files define Landroid/&/span&&span style=&color:#ff0000;&&support/v4&/span&&span style=&color:#3333&&/accessibilityservice/AccessibilityServiceInfoCompatI&/span&&/strong& & & & &at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596) & & & &at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554) & & & &at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535) & & & &at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) & & & &at com.android.dx.merge.DexMerger.merge(DexMerger.java:189) & & & &at com.mand.dexer.Main.mergeLibraryDexBuffers(Main.java:454) & & & &at com.mand.dexer.Main.runMonoDex(Main.java:303) & & & &at com.mand.dexer.Main.run(Main.java:246) & & & &at com.mand.dexer.Main.main(Main.java:215) & & & &at com.mand.Main.main(Main.java:106)  从上述错误中我们可以看到support_v4的包重复加载编译了,我们看一下gradle-app文件&&/kf/ware/vc/& target=&_blank& class=&keylink&&vcD4KPHByZSBjbGFzcz0=&brush:&&dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.0' compile 'in.srain.cube:cube-sdk:1.0.42.1' compile files('libs/android-async-http-1.4.6.jar') }其中引入了v7的包后会自动去加载编译一个v4:21.0.0包,而在in.srain.cube:cube-sdk:1.0.42.1库中也有一个v4的包,所以我们需要去掉一个  看一下,libraries是否是我们所讲的那样,重复加载v4包  二、解决办法dependencies { & &compile fileTree(dir: 'libs', include: ['*.jar']) & &compile 'com.android.support:appcompat-v7:21.0.0' & &&span style=&color:#ff0000;&&compile ('in.srain.cube:cube-sdk:1.0.42.1'){ & & & &exclude module: 'support-v4' & &}&/span& & &compile files('libs/android-async-http-1.4.6.jar')}  去掉in.srain.cube:cube-sdk:1.0.42.1中的包不加载即可。  总结:以上就是小编为大家带来的全部android studio怎么引入第三方jar包相关内容,相信大家一定有所了解了吧。 & &小编推荐: & & & & & &
  更多Android Studio教程,尽在
上一篇 &:
下一篇 &:
文章链接:///tutorials/58149.html
(转载时请注明本文出处及文章链接)

我要回帖

更多关于 rstudio添加library 的文章

 

随机推荐