日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Android Gradle依賴管理、去除重復(fù)依賴、忽略的方式

瀏覽:155日期:2022-09-25 16:57:40

常用依賴

//1.直接依賴第三方開源庫(kù),一般是托管在 jitpack 或者 jcenter implementation ’com.google.code.gson:gson:2.2.4’ implementation ’com.android.support:cardview-v7:25.0.0’ implementation ’com.android.support:design:25.0.0’ //2.直接依賴本地的aar文件,一般是在libs目錄下 implementation(name: ’LiteAVSDK_Professional_5.1.5293’, ext: ’aar’) //3.直接依賴本地的jar文件 implementation files(’libs/bdasr_V3_20170801_60da871.jar’) //4.依賴本地的model implementation project(’:wavelibrary’) implementation project(’:android-ffmpeg’)

庫(kù)工程依賴傳遞問題

1、依賴常用的基本類型有:provided和compile,provided 只在編譯生效不會(huì)打包到 apk 或 aar 中;compile 是會(huì)打包到 apk或 aar 中的(如果是庫(kù)工程的話有特殊情況,參考下面3).

2、app 工程的當(dāng)前(compile+) 的依賴都會(huì)打包到 app 中

3、庫(kù)工程中:

1) jar 包:遠(yuǎn)程依賴不會(huì)打包到 aar 中;本地依賴會(huì);

2) aar:遠(yuǎn)程和本地都不不會(huì)打包到 aar中.

3) 如果你要提供你的庫(kù)工程的 aar 給他人,你需要同時(shí)告訴他這個(gè)庫(kù)工程依賴的其他aar 和遠(yuǎn)程 jar包(因?yàn)樗麄儧]有打包到 aar 中)

4) 如果通過工程依賴(即compile project(’:lib’)的方式), 依賴是可以傳遞的,所以不需要在聲明一次依賴.

去掉重復(fù)依賴

1.第三方庫(kù)中同樣使用了implementation或者compile依賴相同的庫(kù)

implementation(’com.allenliu.versionchecklib:library:2.0.5’) { exclude group: ’com.android.support’, module: ’appcompat-v7’ exclude group: ’com.android.support.constraint’, module: ’constraint-layout’ exclude group: ’org.greenrobot’, module: ’eventbus’ exclude group: ’com.squareup.okhttp3’, module: ’okhttp’ }

2.在不同的庫(kù)中出現(xiàn)相同的so文件

pickFirst只會(huì)打包第一個(gè)遇到的沖突的so,merge(碰到?jīng)_突會(huì)合并)和exclude(直接排除匹配到的文件,不建議使用)

packagingOptions { pickFirst ’lib/arm64-v8a/libgnustl_shared.so’ pickFirst ’lib/armeabi-v7a/libgnustl_shared.so’ }

遇到這種錯(cuò)誤可以通過上面方法嘗試解決

Error:Execution failed for task ‘:app:transformNativeLibsWithMergeJniLibsForDebug’. > More than one

補(bǔ)充知識(shí):Gradle依賴的統(tǒng)一管理,解決依賴沖突

看見別人在用implementation rootProject.ext.dependencies['xxxx']不知道是什么意思,上網(wǎng)查了一下,原來是為了解決或者說預(yù)防gradle依賴沖突的問題。

在項(xiàng)目開發(fā)中我們會(huì)經(jīng)常引入多個(gè)Module,然而每個(gè)Module中又包含了V4、V7,為了升級(jí)新版本依賴包只用更改一次,我們決定采用Gradle依賴的統(tǒng)一管理,避免重復(fù)繁瑣的勞動(dòng)。

記錄get到的新知識(shí),用法如下:

1.在Project目錄下新建config.gradle文件,文件名可自定義

Android Gradle依賴管理、去除重復(fù)依賴、忽略的方式

具體內(nèi)容如下:

ext { android = [ compileSdkVersion : 27, buildToolsVersion : '27.0.0', minSdkVersion : 21, targetSdkVersion : 27, versionCode : 6, versionName : '1.2.2', renderscriptTargetApi : 21 ] version = [ supportLibraryVersion : '26.1.1', okhttpVersion : '3.9.0', retrofitVersion : '2.3.0', glideVersion : '4.0.0', butterknifeVersion : '8.8.1', fragmentationVersion : '1.1.9', ] dependencies = [ //base 'appcompat-v7' : 'com.android.support:appcompat-v7:${version['supportLibraryVersion']}', 'cardview-v7' : 'com.android.support:cardview-v7:${version['supportLibraryVersion']}', 'design' : 'com.android.support:design:${version['supportLibraryVersion']}', 'constraint-layout' : 'com.android.support.constraint:constraint-layout:1.0.2', //net 'gson' : 'com.google.code.gson:gson:2.8.2', 'okhttp' : 'com.squareup.okhttp3:okhttp:${version['okhttpVersion']}', 'logging-interceptor': 'com.squareup.okhttp3:logging-interceptor:${version['okhttpVersion']}', 'retrofit' : 'com.squareup.retrofit2:retrofit:${version['retrofitVersion']}', 'converter-gson' : 'com.squareup.retrofit2:converter-gson:${version['retrofitVersion']}', 'adapter-rxjava2' : 'com.squareup.retrofit2:adapter-rxjava2:${version['retrofitVersion']}', //dao 'greendao' : 'org.greenrobot:greendao:3.2.2', //rx 'rxjava' : 'io.reactivex.rxjava2:rxjava:2.1.5', 'rxandroid' : 'io.reactivex.rxjava2:rxandroid:2.0.1', 'rxbinding' : 'com.jakewharton.rxbinding2:rxbinding:2.1.0', 'rxpermissions' : 'com.tbruyelle.rxpermissions2:rxpermissions:0.9.5@aar', //di 'javax_annotation' : 'org.glassfish:javax.annotation:10.0-b28', 'butterknife' : 'com.jakewharton:butterknife:${version['butterknifeVersion']}', 'butterknife-compiler' : 'com.jakewharton:butterknife-compiler:${version['butterknifeVersion']}', //multidex 'multidex' : 'com.android.support:multidex:1.0.3', //kotlin 'kotlin-stdlib' : 'org.jetbrains.kotlin:kotlin-stdlib:1.2.10', //ui test 'espresso-core' : 'com.android.support.test.espresso:espresso-core:3.0.2', 'espresso-idling-resource' : 'com.android.support.test.espresso:espresso-idling-resource:3.0.2', //unit test , 為了整合mockito和PowerMockito,mockito暫時(shí)最高只支持2.8.9 'junit' : 'junit:junit:4.12', 'mockito' : 'org.mockito:mockito-core:2.8.9', 'powermock-module-junit4' : 'org.powermock:powermock-module-junit4:1.7.4' ]}

2.在Project的build.gradle中添加

apply from: 'config.gradle'

3.在modle的build.gradle中添加引用

apply plugin: ’com.android.application’android { compileSdkVersion rootProject.ext.android['compileSdkVersion'] buildToolsVersion rootProject.ext.android['buildToolsVersion'] defaultConfig { applicationId 'json.chao.com.wanandroid' minSdkVersion rootProject.ext.android['minSdkVersion'] targetSdkVersion rootProject.ext.android['targetSdkVersion'] versionCode rootProject.ext.android['versionCode'] versionName rootProject.ext.android['versionName'] //AndroidJunitRunner必須要顯示指定在defaultConfig中,使用Gradle依賴管理無法使其生效 testInstrumentationRunner ’android.support.test.runner.AndroidJUnitRunner’ renderscriptTargetApi rootProject.ext.android['renderscriptTargetApi'] renderscriptSupportModeEnabled true // Enable RS support multiDexEnabled true vectorDrawables.useSupportLibrary = true }} dependencies { implementation fileTree(include: [’*.jar’], dir: ’libs’) //base implementation rootProject.ext.dependencies['appcompat-v7'] implementation rootProject.ext.dependencies['cardview-v7'] implementation rootProject.ext.dependencies['design'] implementation rootProject.ext.dependencies['constraint-layout'] //net implementation rootProject.ext.dependencies['gson'] implementation rootProject.ext.dependencies['okhttp'] implementation rootProject.ext.dependencies['retrofit'] implementation rootProject.ext.dependencies['converter-gson'] implementation rootProject.ext.dependencies['adapter-rxjava2'] //dao implementation rootProject.ext.dependencies['greendao'] //rx implementation rootProject.ext.dependencies['rxjava'] implementation rootProject.ext.dependencies['rxandroid'] implementation rootProject.ext.dependencies['rxbinding'] implementation rootProject.ext.dependencies['rxpermissions'] //UI測(cè)試 androidTestImplementation (rootProject.ext.dependencies['espresso-core']) { exclude group: ’com.android.support’, module: ’support-annotations’ } implementation (rootProject.ext.dependencies['espresso-idling-resource']) { exclude module: ’support-annotations’ }}

(兩個(gè)文件中有不對(duì)應(yīng)的依賴方法,that’s ok, 只是粘貼代碼的時(shí)候刪除了一些,知道用法就行了)

以上這篇Android Gradle依賴管理、去除重復(fù)依賴、忽略的方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Android
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
麻豆国产精品| 久久麻豆视频| 欧美不卡高清一区二区三区| 国产激情久久| 国产精品久久久久久久久久妞妞| 日韩va亚洲va欧美va久久| 中文字幕免费精品| 亚洲精品无播放器在线播放| 五月天久久网站| 91精品电影| 中文日韩在线| 蜜桃一区二区三区在线| 爽好久久久欧美精品| 丝瓜av网站精品一区二区| 亚洲一区二区小说| 亚洲人成亚洲精品| 国产一卡不卡| 国产极品模特精品一二| 日韩综合在线| 女生影院久久| 免费视频亚洲| 日韩一级欧洲| 亚洲bt欧美bt精品777| 日韩综合一区二区| 国产日韩高清一区二区三区在线 | 久久精品一区二区国产| 国产一区二区三区精品在线观看| 欧美国产偷国产精品三区| 桃色一区二区| 在线亚洲免费| 日本亚洲视频在线| 国产精东传媒成人av电影| 亚洲综合在线电影| 国产一区二区高清| 日本三级亚洲精品| 精品久久一区| 91精品99| 国产精品亚洲四区在线观看| 91视频一区| 亚洲精品中文字幕乱码| 深夜福利亚洲| 手机在线电影一区| 国产精品老牛| 国产精品免费99久久久| 99视频精品全国免费| 婷婷精品在线| 国产91在线播放精品| 日韩视频一区二区三区在线播放免费观看| 亚洲精品欧美| 福利一区二区| 欧美特黄一区| 欧美aa在线视频| 99精品99| 精品视频在线你懂得| 国产亚洲午夜| 久久精品亚洲一区二区| 欧美午夜不卡| 国产精品天堂蜜av在线播放| 久久国产亚洲| 国产伦精品一区二区三区视频| 日韩欧美一区二区三区免费观看| 免费看精品久久片| 91亚洲人成网污www| 最新国产精品| 日韩一区自拍| 香蕉久久一区| 日本少妇一区| 国产精品99久久免费| 亚洲国产不卡| 美女久久久久久| 丝瓜av网站精品一区二区| 国产传媒av在线| 亚洲精品成人一区| jiujiure精品视频播放| 久久久免费人体| 亚洲精品高潮| 一区二区三区四区在线看| 国产精品久久久久久久免费软件| 亚洲一区成人| 日韩精品2区| 日本久久二区| 黄色av一区| 国产v综合v| 精品一区二区三区中文字幕| 亚洲综合色婷婷在线观看| 日本精品在线中文字幕| 国产精品久久久久av蜜臀 | 91麻豆精品| 国产精品人人爽人人做我的可爱| 麻豆视频在线看| 国产精品久久免费视频| 亚洲精品观看| 欧美福利在线| 亚洲涩涩在线| 精品一区二区三区在线观看视频| 日韩av午夜在线观看| 美女精品一区| 欧美日韩国产高清电影| 亚洲黄色中文字幕| 久久久久久亚洲精品美女| 欧美日韩伊人| 日韩和欧美一区二区| 日韩亚洲精品在线| 亚洲精品一区二区妖精| 久久九九99| 99视频精品视频高清免费| 日韩欧美三级| 国产精品久久久久77777丨| 日本一区免费网站| 久久高清国产| 天堂av在线一区| 亚洲欧美久久| 好看不卡的中文字幕| 五月综合激情| 婷婷亚洲五月色综合| 久久亚洲国产| 亚洲v在线看| 久久精品二区三区| 久久精品国内一区二区三区水蜜桃| а√天堂8资源在线| 樱桃视频成人在线观看| 欧美xxxx中国| 国产成人精品亚洲线观看| 开心激情综合| 国产成人免费| 国产传媒av在线| 日本久久精品| 日韩一区三区| 欧洲亚洲一区二区三区| 私拍精品福利视频在线一区| 四虎4545www国产精品 | 欧美日韩国产高清电影| 黄色成人精品网站| 亚洲在线成人| 综合国产在线| 只有精品亚洲| 亚州精品视频| 欧美亚洲三级| 久久不卡国产精品一区二区| 久久不见久久见免费视频7| 国产精品毛片视频| 91亚洲国产高清| 欧美精品一二| 免费人成精品欧美精品| **爰片久久毛片| 里番精品3d一二三区| 国产精品久久久久久久久妇女| 国产在线观看www| 久久精品国产www456c0m| 一区在线免费| 亚洲视频二区| 国产精品红桃| 亚洲免费福利| av不卡在线看| 久久国产免费看| 久久久久久色| 久久精品一区二区国产| 欧美日韩免费观看视频| 亚洲一区日本| 国产无遮挡裸体免费久久| 免费一级欧美片在线观看网站| av在线最新| 视频一区二区三区入口| 国产精品嫩草影院在线看| 日本免费久久| 日韩视频在线一区二区三区 | 亚洲作爱视频| 欧美影院精品| 日产精品一区| 亚洲精品影院在线观看| 国产日韩欧美一区二区三区| 天堂中文在线播放| 蜜臀精品一区二区三区在线观看| 久久精品99久久久| zzzwww在线看片免费| 欧美一区=区| 久久午夜影院| 亚洲中午字幕| 欧美韩一区二区| 欧美/亚洲一区| 国产区精品区| 激情久久久久久| 国产精品红桃| 在线一区免费观看| 国产精品jk白丝蜜臀av小说| 久久久久国产一区二区| 色综合视频一区二区三区日韩| 久久久久久久欧美精品| 日韩黄色大片| 日本不卡高清视频| 国精品产品一区| 亚洲一区中文| 国产中文字幕一区二区三区| 天使萌一区二区三区免费观看| 久久一区精品| 亚洲少妇在线| 久久久久免费| 色狠狠一区二区三区| 成人羞羞在线观看网站| 欧美日本三区|