android studio module添加最新的com.android.support:appcompat-v7:21.0.0依賴報錯,androidstudio下載

來源:互聯網
上載者:User

android studio module添加最新的com.android.support:appcompat-v7:21.0.0依賴報錯,androidstudio下載

我的開發平台是Mac,測試機是MX3(API 19 android 4.4.4),我不確定其他平台是否出現該問題,所以提前說明一下,免得誤人子弟。

今天再使用自訂ActionBar的時候,出現了一個很奇葩的錯誤,就是我為自己的module添加了最新的com.android.support:appcompat-v7:21.0.0依賴後,在Activity中使用  final ActionBar actionBar = getActionBar();actionBar.show();來擷取ActionBar時,拋出了NullPointerException異常,這讓我百思不得其解。這在之前使用一直沒用問題啊。。。。。於是,各種百度google,但是並未發現類似問題(我用了最新的support包)。最後,人品爆發,在StackOverFlow上找到了類似的問題,後來我意識到可能是     com.android.support:appcompat-v7:21.0.0版本太高,導致在android 5.0以下的sdk導致不相容問題。估計,google的腦袋是被槍打了把,話說support包本就是用來做相容的吧,在這個版本竟然成了導致不相容的原因。。。。。

錯誤原因分析如下:
在module的build.gradle檔案裡,如果用預設的自動依賴處理方式,如下所示:


dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])compile project(':Library')compile 'com.android.support:support-v4:21.0.0'compile 'com.android.support:appcompat-v7:21.0.0'}


編譯時間系統就會去依賴最新版的support:appcompat-v7:21.0.0 。按照之前的經驗來說是不因該有問題的,但是據我的理解,目前appcompat-v7:21.0.0須使用android 5.0版本的build tool,而且build出來的程式只能在Android 5.0下運行,真屌啊。。。。我們4.4.4的使用者混不下去了嗎???
所以解決方案也很簡單:就是把appcompat-v7:21.0.0改為appcompat-v7:19.+
如下所示:


dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])compile project(':Library')compile 'com.android.support:support-v4:21.0.0'compile 'com.android.support:appcompat-v7:19.+'}

PS: 發現國內論壇並未有人記載過此問題,所以我來記錄一下,權當備忘錄了。其中發了很多牢騷,還請見諒,因為這個問題耽誤了我三個多小時。畢竟自己實力太菜啊,哈哈,菜鳥的高手養成計劃已經開始了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.