成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Android中添加fragment后版本不兼容如何解決-創(chuàng)新互聯(lián)

這篇文章給大家介紹Android中添加fragment后版本不兼容如何解決,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、網(wǎng)站建設(shè)與策劃設(shè)計(jì),新洲網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:新洲等地區(qū)。新洲做網(wǎng)站價(jià)格咨詢:18982081108

Fragment的產(chǎn)生與介紹

Android運(yùn)行在各種各樣的設(shè)備中,有小屏幕的手機(jī),超大屏的平板甚至電視。針對屏幕尺寸的差距,很多情況下,都是先針對手機(jī)開發(fā)一套App,然后拷貝一份,修改布局以適應(yīng)平板神馬超級(jí)大屏的。難道無法做到一個(gè)App可以同時(shí)適應(yīng)手機(jī)和平板么,當(dāng)然了,必須有啊。Fragment的出現(xiàn)就是為了解決這樣的問題。你可以把Fragment當(dāng)成Activity的一個(gè)界面的一個(gè)組成部分,甚至Activity的界面可以完全有不同的Fragment組成,更帥氣的是Fragment擁有自己的生命周期和接收、處理用戶的事件,這樣就不必在Activity寫一堆控件的事件處理的代碼了。更為重要的是,你可以動(dòng)態(tài)的添加、替換和移除某個(gè)Fragment。

昨天學(xué)習(xí)了下Android的Fragment。按照官網(wǎng)的教程,新建了一個(gè)類BlankFragment,繼承自Fragment。然后編譯的時(shí)候就出錯(cuò)了:

Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(26.0.0-beta1) from [com.android.support:design:26.0.0-beta1] AndroidManifest.xml:28:13-41
  is also present at [com.android.support:support-v4:26.1.0] AndroidManifest.xml:28:13-35 value=(26.1.0).
  Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:26:9-28:44 to override.

搜了一下,七七八八說什么的都有。最不靠譜的一個(gè)就是說什么把manifest文件里的標(biāo)簽從android:name改成class的??慈罩久黠@是和版本有關(guān)??!后來終于找到個(gè)和版本兼容有關(guān)的解決方案,要在app目錄下的build.gradle里添加如下代碼才可以:

configurations.all {
  resolutionStrategy.eachDependency { DependencyResolveDetails details ->
    def requested = details.requested
    if (requested.group == 'com.android.support') {
      if (!requested.name.startsWith("multidex")) {
        details.useVersion '26.0.0-beta1'
      }
    }
  }
}

試了一下確實(shí)好了。但不能滿足于此。

注意到,就在添加的這段代碼上面,描述的是工程依賴的庫:

dependencies {
  implementation fileTree(dir: 'libs', include: ['*.jar'])
  implementation 'com.android.support:appcompat-v7:26.0.0-beta1'
  implementation 'com.android.support.constraint:constraint-layout:1.0.2'
  implementation 'com.android.support:design:26.0.0-beta1'
  implementation 'com.android.support:support-v4:26.1.0'
  testImplementation 'junit:junit:4.12'
  androidTestImplementation 'com.android.support.test:runner:0.5'
  androidTestImplementation 'com.android.support.test.espresso:espresso-core:2.2.2'
}

而這一行下面有紅線:

implementation 'com.android.support:appcompat-v7:26.0.0-beta1'

鼠標(biāo)指上去提示:

All com.android.support libraries must use the exact same version specification 
(mixing versions can lead to runtime crashes). 
Found versions 26.1.0, 26.0.0-beta1. Examples include com.android.support:support-compat:26.1.0 
and com.android.support:animated-vector-drawable:26.0.0-beta1

這不是說的很明白:所有依賴com.android.support的庫必須使用一樣的版本!看看Dependency里,com.android.support:appcompat-v7:26.0.0-beta1和com.android.support:support-v4:26.1.0兩個(gè)版本就是矛盾的啊!看一下git的記錄,26.1.0這一行就是新加的,肯定就是新建BlankFragment類的時(shí)候AndroidStudio自動(dòng)添加的。再回頭看看出錯(cuò)日志,說的不也是同一個(gè)意思?

不得不吐槽一下AndroidStudio,你既然要自動(dòng)加版本依賴,就把版本兼容性也一起檢查了唄。不然還不如不要加,讓我們自己來。最討厭這種半自動(dòng)化的東西,最坑人。

關(guān)于Android中添加fragment后版本不兼容如何解決就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

網(wǎng)站題目:Android中添加fragment后版本不兼容如何解決-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://jinyejixie.com/article30/jjcso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、網(wǎng)站策劃網(wǎng)站改版、網(wǎng)站制作建站公司面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
西乌珠穆沁旗| 通江县| 阜新| 莎车县| 青岛市| 惠水县| 安泽县| 仁怀市| 耿马| 江华| 盐源县| 和硕县| 盐池县| 盐池县| 西和县| 庄浪县| 五莲县| 崇礼县| 江口县| 厦门市| 壶关县| 乡城县| 芦溪县| 错那县| 密山市| 凤翔县| 南陵县| 芦山县| 博爱县| 拉萨市| 呼和浩特市| 库尔勒市| 兴宁市| 北京市| 肥城市| 固原市| 仙居县| 泰安市| 景德镇市| 德保县| 德庆县|