pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

Gradle 排除或添加硬包含在庫 classes.jar 中的 JAR 文

Gradle Exclude or add reference for JAR file hard included inside library classes.jar(Gradle 排除或添加硬包含在庫 classes.jar 中的 JAR 文件的引用)
本文介紹了Gradle 排除或添加硬包含在庫 classes.jar 中的 JAR 文件的引用的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我在項目中包含的庫遇到了一些問題:一開始,這只是一個相互沖突的依賴問題,我通過排除來解決support-v4 是常用的共享模塊.

I'm running into some trouble with a library I included into my project: At the beginning it was just a conflicting dependencies issue that I resolved by excluding support-v4 which is the commonly shared module.

問題在于,其中一個 lbsLib-release 似乎是在開發人員構建之前使用根項目內的普通 .jar 文件構建的.

The problem is that one of those lbsLib-release seems to have been built with a plain .jar file inside of the root project before the developer build.

通過運行 ./gradlew app:dependencies 我驗證了構建圖中沒有引用依賴項.

By running ./gradlew app:dependencies I verified that the dependency is not referenced in the build graph.

我發現這個 support-v4 嵌入到 classes.jar 中在:app/build/intermedites/exploded-aar/MyQaaAndroid/lbsLib-release/unspecified/classes.jar/,如下圖所示:

And I found this support-v4 embedded into the classes.jar located at : app/build/intermedites/exploded-aar/MyQaaAndroid/lbsLib-release/unspecified/classes.jar/ as you can see on the picture below:

我不能自己重建項目,因為它不是一個開源的lib,所以有兩個問題:

I can't rebuild the project myself because it is not an open-sourced lib, so there is two problem:

  1. 如果我將 compile 'com.android.support:support-v4:18.0.+' 添加到 build.gradle 一個 multiple dex文件 在構建時拋出錯誤,因此庫被引用了兩次.

  1. If I add compile 'com.android.support:support-v4:18.0.+' to the build.gradle a multiple dex file error is thrown at build time so the library is referenced twice.

UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/app/BackStackState;
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.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)

`

如果我刪除所有需要 support-v4 的庫,它會在應用程序運行時引發缺少依賴項錯誤.

If I remove all libs which require support-v4 it throws a missing dependencies error at the application runtime.

所以我想知道是否可以從構建中排除這個 .jar 文件或使其他庫依賴于 lbsLib-release 嵌入 support-v4 .jar.

So I would like to know if it is possible to exclude this .jar file from the build or to make the others libs depends on the lbsLib-release embedded support-v4 .jar.

compile (project(':lbsLib-release')) {
    exclude module: 'support-v4'
}

compile ('com.sothree.slidinguppanel:library:2.0.4'){
    exclude module: 'support-v4'
}

compile('com.google.android.gms:play-services:6.5.87') {
    exclude module: 'support-v4'
}

推薦答案

嘗試使用 resolutionStrategy (API 參考) 在根 build.gradle.

Try to use resolutionStrategy (API reference) at root build.gradle.

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
    configurations.all((Closure) {
        resolutionStrategy {
            force 'com.android.support:support-v4:21.0.2' // your version of support library
        }
    })

}

這篇關于Gradle 排除或添加硬包含在庫 classes.jar 中的 JAR 文件的引用的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

IncompatibleClassChangeError after updating to Android Build Tools 25.1.6 GCM / FCM(更新到 Android Build Tools 25.1.6 GCM/FCM 后出現 IncompatibleClassChangeError)
How to get current flavor in gradle(如何在 gradle 中獲取當前風味)
How to fix quot;unexpected element lt;queriesgt; found in lt;manifestgt;quot; error?(如何修復“意外元素lt;查詢gt;在“清單中找到錯誤?)
Multi flavor app based on multi flavor library in Android Gradle(基于 Android Gradle 中多風味庫的多風味應用)
Android dependency has different version for the compile and runtime(Android 依賴在編譯和運行時有不同的版本)
Transitive dependencies for local aar library(本地 aar 庫的傳遞依賴)
主站蜘蛛池模板: 护腰带生产厂家_磁石_医用_热压护腰_登山护膝_背姿矫正带_保健护具_医疗护具-衡水港盛 | 电池高低温试验箱-气态冲击箱-双层电池防爆箱|简户百科 | 高压油管,液压接头,液压附件-烟台市正诚液压附件 | 设定时间记录电子秤-自动累计储存电子秤-昆山巨天仪器设备有限公司 | 无锡门窗-系统门窗-阳光房-封阳台-断桥铝门窗厂[窗致美] | 品牌设计_VI设计_电影海报设计_包装设计_LOGO设计-Bacross新越品牌顾问 | 淘气堡_室内儿童乐园_户外无动力儿童游乐设备-高乐迪(北京) | 特种电缆厂家-硅橡胶耐高温电缆-耐低温补偿导线-安徽万邦特种电缆有限公司 | 顶呱呱交易平台-行业领先的公司资产交易服务平台 | 硫化罐_蒸汽硫化罐_大型硫化罐-山东鑫泰鑫智能装备有限公司 | MTK核心板|MTK开发板|MTK模块|4G核心板|4G模块|5G核心板|5G模块|安卓核心板|安卓模块|高通核心板-深圳市新移科技有限公司 | 编织人生 - 权威手工编织网站,编织爱好者学习毛衣编织的门户网站,织毛衣就上编织人生网-编织人生 | 深圳公司注册-工商注册公司-千百顺代理记账公司 | 杭州翻译公司_驾照翻译_专业人工翻译-杭州以琳翻译有限公司官网 组织研磨机-高通量组织研磨仪-实验室多样品组织研磨机-东方天净 | 北京森语科技有限公司-模型制作专家-展览展示-沙盘模型设计制作-多媒体模型软硬件开发-三维地理信息交互沙盘 | 老城街小面官网_正宗重庆小面加盟技术培训_特色面馆加盟|牛肉拉面|招商加盟代理费用多少钱 | 深圳南财多媒体有限公司介绍| 南京技嘉环保科技有限公司-杀菌除臭剂|污水|垃圾|厕所|橡胶厂|化工厂|铸造厂除臭剂 | 工程管道/塑料管材/pvc排水管/ppr给水管/pe双壁波纹管等品牌管材批发厂家-河南洁尔康建材 | 上海logo设计 | 烘箱-工业烘箱-工业电炉-实验室干燥箱 - 苏州华洁烘箱制造有限公司 | 宁波普瑞思邻苯二甲酸盐检测仪,ROHS2.0检测设备,ROHS2.0测试仪厂家 | 存包柜厂家_电子存包柜_超市存包柜_超市电子存包柜_自动存包柜-洛阳中星 | 泰来华顿液氮罐,美国MVE液氮罐,自增压液氮罐,定制液氮生物容器,进口杜瓦瓶-上海京灿精密机械有限公司 | 手机游戏_热门软件app下载_好玩的安卓游戏下载基地-吾爱下载站 | 液压油缸生产厂家-山东液压站-济南捷兴液压机电设备有限公司 | 岩石钻裂机-液压凿岩机-劈裂机-挖改钻_湖南烈岩科技有限公司 | 预制围墙_工程预制围墙_天津市瑞通建筑材料有限公司 | 合金耐磨锤头_破碎机锤头_郑州市德勤建材有限公司 | 大流量卧式砂磨机_强力分散机_双行星双动力混合机_同心双轴搅拌机-莱州市龙跃化工机械有限公司 | 电梯乘运质量测试仪_电梯安全评估测试仪-武汉懿之刻 | 智能化的检漏仪_气密性测试仪_流量测试仪_流阻阻力测试仪_呼吸管快速检漏仪_连接器防水测试仪_车载镜头测试仪_奥图自动化科技 | 武汉高低温试验箱_恒温恒湿试验箱厂家-武汉蓝锐环境科技有限公司 | 深圳APP开发公司_软件APP定制开发/外包制作-红匣子科技 | 精密交叉滚子轴承厂家,转盘轴承,YRT转台轴承-洛阳千协轴承 | 北京包装设计_标志设计公司_包装设计公司-北京思逸品牌设计 | 常州企业采购平台_常州MRO采购公司_常州米孚机电设备有限公司 | 北京租车公司_汽车/客车/班车/大巴车租赁_商务会议/展会用车/旅游大巴出租_北京桐顺创业租车公司 | 运动木地板_体育木地板_篮球馆木地板_舞台木地板-实木运动地板厂家 | ICP备案查询_APP备案查询_小程序备案查询 - 备案巴巴 | 天一线缆邯郸有限公司_煤矿用电缆厂家_矿用光缆厂家_矿用控制电缆_矿用通信电缆-天一线缆邯郸有限公司 |