国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站建設(shè)的客戶需求調(diào)查與分析軟文推廣怎么做

網(wǎng)站建設(shè)的客戶需求調(diào)查與分析,軟文推廣怎么做,物流公司做網(wǎng)站需求,成都網(wǎng)站建設(shè)外包公司排名解決辦法 問題原因就是,各個模塊所有的依賴(遞歸)的 jar 包最后都會加載到安卓的項目中,你可以選擇 project 形式查看 External Libraries,都在這了。所以解決問題關(guān)鍵就是干掉沖突,剩下一個就行了&#xf…

解決辦法

問題原因就是,各個模塊所有的依賴(遞歸)的 jar 包最后都會加載到安卓的項目中,你可以選擇 project 形式查看 External Libraries,都在這了。所以解決問題關(guān)鍵就是干掉沖突,剩下一個就行了,或者全不要就行了!

下面直接先上解決辦法吧,急性子就不為難急性子了,本人最煩的就是說一大堆廢話,后面幾行代碼就能問題。

1、引入時剔除

    //逗號別掉了implementation 'com.ezviz.sdk:ezuikit:2.2.1', {exclude group: 'com.squareup.okhttp3', module: 'okhttp'}//或者用下面方式
//    implementation('com.ezviz.sdk:ezuikit:2.2.1') {
//        exclude group: 'com.squareup.okhttp3', module: 'okhttp'
//    }

這里直接拿我解決的 SDK 為例,其中 okhttp 沖突了。我的項目里面已經(jīng)有一個 okhttp:3.8.1 了,這里導(dǎo)入這個庫的時候,又將 okhttp:3.10.0 給導(dǎo)入進(jìn)來了,直接排除掉就可以,具體說明文章末尾細(xì)講!

至于 group 和 module,可以看我下面這個引入,類比下:

com.squareup.okhttp3:okhttp:3.10.0

2、全局刪除

android{//....//剔除工程中所有的該依賴configurations {all*.exclude group: 'org.hamcrest', module: 'hamcrest-core'}
}

這個是一個很傻的辦法,直接全局設(shè)定,把導(dǎo)入的某 jar 包全部刪除,這樣就不沖突了?也許打包是沒問題了,只要用到功能必閃退吧!(貌似有人說要配合 Multidex 一起用,看看咯!)

(ps. 后續(xù)更新:有可能是其他庫帶來的,其實根本用不到,還是有用的)

3、開啟 Multidex 功能

我是想不到 jar 包沖突和 Multidex 有什么關(guān)系,但是看到幾篇博客說能解決問題,也順便說一下吧!我個人認(rèn)為 Multidex 就是解決 class 過多的,不知道是不是。

(ps. 后續(xù)更新:是不是可能引入的庫造成了類太多了?)

步驟 1:更改 build.grade

defaultConfig {...// Enabling multidex support.multiDexEnabled true
}dependencies {...compile 'com.android.support:multidex:1.0.1'
}

步驟 2:設(shè)置 Application 類

public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();MultiDex.install(this);}
}

步驟 3:更改 grade.properties

org.gradle.jvmargs=-XX:MaxHeapSize\=2048m -Xmx2048m

步驟 4:通過增大可用內(nèi)存解決「:app:transformClassesForDexForDebug」異常,在 gradle.build 中指定 javaMaxHeapSize:

android {...dexOptions {javaMaxHeapSize "4g" //specify the heap size for the dex process}
}

4、強(qiáng)制修改版本

這個辦法在網(wǎng)上見的多,大致就是在模塊的 gradle 文件里面強(qiáng)制使用某一個版本的 jar 包,這樣就不會下載兩個 jar 包了。

我是發(fā)現(xiàn)沒什么用,網(wǎng)上有的說放根目錄,有的說放 android 里面,我不確定放哪啊!我是都試了,沒效果,可能運行項目的姿勢不對嘍?

(ps. 后續(xù)更新:放在 gradle 中最外層就可以,親測有用。
pic
在不清楚在那里引入的庫的話,切換到project目錄,看看哪個重復(fù)了,統(tǒng)一下版本,很有用!)

android{//....//放在這???  
}
//根節(jié)點???
configurations.all {//resolutionStrategy.force 'com.squareup.okhttp3:okhttp:3.10.0'resolutionStrategy.eachDependency { DependencyResolveDetails details ->def requested = details.requestedif (requested.group == 'com.google.android.exoplayer') {if (!requested.name.startsWith("multidex")) {details.useVersion '2.9.3'}}}
}

還有人說可以在工程的 gradle 中強(qiáng)制設(shè)置,我是發(fā)現(xiàn)也是沒什么用,提一下。

allprojects {...configurations.all {resolutionStrategy.force 'com.squareup.okhttp3:okhttp:3.10.0'}
}

5、自行刪除

這個方法我覺得可以解決特定問題,但局限性很大。

我們知道別人的依賴我們是無法修改的,但是自己本地 lib 是可以刪除,如果是和我們本地的 jar 包沖突的話,我們刪掉自己的就行了。

這個解決辦法有局限性,一個是要求沖突的 jar 包在我們本地(可以操作),另一個如果我們用的版本較高,而別人的版本較低怎么辦?那豈不是涼涼,此為下策!

6、使用 compileOnly

compileOnly 的形式引入庫會只在編譯時有效,不參與打包,它是解決一個什么問題呢?其實就是多個模塊中,會沖突的庫,讓其中一個 implementation ,其他使用 compileOnly,最后出來能夠共用一個庫(當(dāng)然要有一個)。

那這個辦法和解決我們的問題有什么關(guān)聯(lián)呢?其實這個辦法和第二個方法類似,目的就在打包,引入的庫的時候?qū)?implementation 改為 compileOnly,讓引入的庫只在編譯時有效,不會參與打包,這樣就能夠打包了。

這個問題也很明顯,我要是能找到?jīng)_突的庫,讓它單獨 compileOnly 固然能解決問題,可是事與愿違,我們沖突的庫一般都是在別人的庫里面,如果直接將所有內(nèi)容以 compileOnly 形式導(dǎo)入,我們百分百要用到這個庫里面的東西啊,一用就會閃退,最終只是自欺欺人罷了!

(ps. 后續(xù)更新:年少輕狂啊!作為SDK提供給別人用得到啊)


好了,上面就是解決依賴沖突的幾種辦法了,推薦第一個,其他有些雞肋。

依賴分析

這里將一下我們?nèi)绾味ㄎ粵_突,實際上編譯的時候就會報錯了,如下:

Execution failed for task ':app_vs:checkDebugDuplicateClasses'.Duplicate class okhttp3.Address found in modules jetified-okhttp-3.10.0.jar (com.squareup.okhttp3:okhttp:3.10.0) and jetified-okhttp-3.8.1.jar (okhttp-3.8.1.jar)

這里就是提示我 jetified-okhttp-3.10.0.jar 和 jetified-okhttp-3.8.1.jar 有沖突了,不過這還是比較簡單的信息,下面介紹使用 gradlew 分析。

使用 gradlew 分析

查看依賴關(guān)系需要用到的命令為:

gradlew :[module_name]:dependencies

如需分析工程中app這個module的依賴關(guān)系行命令則為 :

gradlew :app:dependencies --configuration releaseRuntimeClasspath

從下面的關(guān)系樹可以看到各個依賴之間的關(guān)系,以及依賴版本號合并后的最終版本號

+--- com.android.support:support-core-utils:28.0.0 (*)
|    |    |    +--- com.android.support:customview:28.0.0
|    |    |    |    +--- com.android.support:support-annotations:28.0.0
|    |    |    |    \--- com.android.support:support-compat:28.0.0 (*)
|    |    |    +--- com.android.support:viewpager:28.0.0
|    |    |    |    +--- com.android.support:support-annotations:28.0.0
|    |    |    |    +--- com.android.support:support-compat:28.0.0 (*)
|    |    |    |    \--- com.android.support:customview:28.0.0 (*)
|    |    |    +--- com.android.support:coordinatorlayout:28.0.0

如果你不想在命令終端中查看,而是想把依賴關(guān)系輸出到文件中,則可以使用以下命令:
gradlew :[module_name]:dependencies > [output_file]

例如將app module的依賴關(guān)系輸出到dependence.txt文件中:
gradlew :app:dependencies > dependence.txt

簡單小結(jié)

實際上這些內(nèi)容應(yīng)該寫在最前面的,但是我覺得解決問題優(yōu)先,實際上上面得內(nèi)容看起來還是有點摸不著頭腦的,雖然可能能解決你的問題。

依賴

上面我們通過 gradlew 命令能夠看到,實際上我們項目的依賴是一種樹的關(guān)系,每個模塊、每個庫都會直接或間接地引用別的庫,最后匯總到我們地安卓項目中。

點開頂部地 Project Structure ,選擇 Dependencies ,我們可以看到自己地一些庫

在這里插入圖片描述

而選擇 Project 目錄后,我們可以看到所有的庫(aar/jar)

在這里插入圖片描述

為什么會沖突,實際上就是這個匯總問題,當(dāng)所有庫都放一起了,加入有兩個版本不一致的庫,豈不是有兩個jar(aar) 包?所以有了我們上面的解決辦法,去掉一個,或者全去掉。

沖突

我們一直講的沖突,卻沒有說到為何沖突,實際上沖突有下面這些形式:

  1. 項目自己引用的 jar 包重復(fù)

  2. 項目中 jar 包和第三方庫(module、遠(yuǎn)程庫、aar、jar)沖突

  3. 第三方庫之間的沖突

如果是我們自己的,很好辦,可以自己隨便操作(刪除或修改),如果是第三方的就改不了,只能在引入庫的時候排除掉。(如果功能都用不到,刪除了也沒問題)

結(jié)語

以上就是解決依賴沖突的一些辦法,這里有兩點內(nèi)容,希望讀者再了解了解,說不定對依賴有更深的理解:

  1. Gradle 導(dǎo)入方式(implementation、api、compileOnly等)

  2. 混淆

http://aloenet.com.cn/news/45816.html

相關(guān)文章:

  • 網(wǎng)站專題二級頁怎么做今日國際重大新聞事件
  • 煙臺哪家公司可以做網(wǎng)站2022年度關(guān)鍵詞
  • 廈門企業(yè)做網(wǎng)站市場調(diào)研的方法
  • 做曖免費觀看網(wǎng)站常州seo排名收費
  • 站長工具永久更新網(wǎng)址查詢工具
  • 怎樣讓自己的網(wǎng)站被收錄軟文營銷文章案例
  • 北京旅游網(wǎng)站建設(shè)關(guān)鍵詞排名優(yōu)化易下拉排名
  • 權(quán)威的網(wǎng)站建設(shè)排行榜app如何推廣以及推廣渠道
  • 工程管理畢業(yè)設(shè)計代做網(wǎng)站百度網(wǎng)址大全下載安裝
  • 網(wǎng)站批量發(fā)布杭州網(wǎng)站推廣與優(yōu)化
  • 網(wǎng)站源碼怎么搭建百度官網(wǎng)認(rèn)證多少錢一年
  • 織夢做的的網(wǎng)站首頁顯示空白站長工具箱
  • 網(wǎng)站開發(fā)的形式深圳網(wǎng)站設(shè)計小程序
  • 衢州網(wǎng)站建設(shè)需要多少費用國內(nèi)網(wǎng)絡(luò)營銷公司排名
  • bootstrao導(dǎo)入wordpressseo怎么優(yōu)化方案
  • 做視頻鏈接的網(wǎng)站嗎域名收錄批量查詢
  • 合肥建設(shè)監(jiān)理協(xié)會網(wǎng)站南昌百度網(wǎng)站快速排名
  • 網(wǎng)站建網(wǎng)站建站專業(yè)公司seo短期課程
  • 網(wǎng)站建設(shè)模板型和定制型搜索引擎優(yōu)化seo專員招聘
  • 重慶網(wǎng)站制作哪家好搜索引擎都有哪些
  • 衢州網(wǎng)絡(luò)公司做網(wǎng)站口碑營銷理論
  • 可信賴的武漢網(wǎng)站建設(shè)舉例網(wǎng)絡(luò)營銷的例子
  • 網(wǎng)站后臺建設(shè)計劃書微信做單30元一單
  • 做網(wǎng)站的銷售團(tuán)隊站長之家最新網(wǎng)站
  • 網(wǎng)站安裝系統(tǒng)怎么安裝教程視頻強(qiáng)強(qiáng)seo博客
  • 公司怎么做網(wǎng)站營銷模式方案
  • 北京網(wǎng)站建設(shè)新聞國產(chǎn)長尾關(guān)鍵詞拘挖掘
  • 有機(jī)蔬菜哪個網(wǎng)站做的更好溫州seo按天扣費
  • 網(wǎng)站制作公司興田德潤怎么聯(lián)系今天熱點新聞
  • 佛山網(wǎng)站代運營準(zhǔn)度科技有限公司網(wǎng)站內(nèi)部鏈接優(yōu)化方法