2016-07-25 42 views
3

我更新了我的支持庫後從23.1.123.4.0我得到這樣的警告cannot access android.support.v4.app.baseFragmentActivityEclair在每次調用超級的AppCompatActivityAndroid Studio中古怪的警告

每個實例如果我更新我的支持庫24.1.1警告變爲cannot access android.support.v4.app.baseFragmentActivityJB

誰能告訴我,爲什麼顯示這個警告,我怎麼能刪除這樣的警告:

這裏是在我的依賴關係: (本沒有錯誤)

compile 'com.android.support:palette-v7:23.1.1' 
compile 'com.android.support:gridlayout-v7:23.1.1' 
compile 'com.android.support:support-v4:23.1.1' 
compile 'com.android.support:appcompat-v7:23.1.1' 
compile 'com.android.support:design:23.1.1' 
compile 'com.android.support:cardview-v7:23.1.1' 

這裏是我的依賴後, cannot access android.support.v4.app.baseFragmentActivityEclair警告:

compile 'com.android.support:palette-v7:23.4.0' 
compile 'com.android.support:gridlayout-v7:23.4.0' 
compile 'com.android.support:support-v4:23.4.0' 
compile 'com.android.support:appcompat-v7:23.4.0' 
compile 'com.android.support:design:23.4.0' 
compile 'com.android.support:cardview-v7:23.4.0' 

這裏是我的依賴後cannot access android.support.v4.app.baseFragmentActivityJB警告:

compile 'com.android.support:palette-v7:24.1.1' 
compile 'com.android.support:gridlayout-v7:24.1.1' 
compile 'com.android.support:support-v4:24.1.1' 
compile 'com.android.support:appcompat-v7:24.1.1' 
compile 'com.android.support:design:24.1.1' 
compile 'com.android.support:cardview-v7:24.1.1' 
+0

你是什麼android.defaultConfig.minSdkVersion?我認爲谷歌已經放棄了對舊版android版本的Fragment支持。 (即android-Eclair(api 5 ... 7))。設置minSdkVersion = 8應該顯示「baseFragmentActivityEclair」錯誤。 – k3b

+0

我正在使用minsdk = 14 –

回答

2

我們遇到了類似的問題時,我們的項目包中的一個對版本24.0的支持庫依賴和另一包是依賴於23.4.0版本。這似乎是Android Studio(IntelliJ)IDE的問題,而不是編譯器,因爲我們能夠毫無問題地構建和運行項目。我們通過將24.0依賴恢復到23.4.0來解決警告。我懷疑,走向另一個方向(將我們所有的軟件包依賴關係推進到24.0)也會消除這個警告,但是由於項目中的軟件包數量,我們沒有嘗試過。

1

如果您想要解決這個問題,許多支持庫都有一個名爲libs/internal_impl-$VERSION.jar的內部庫,其中包含這些類型的特定於版本的實現。爲了讓您的IDE工作,您可以提取這些JAR並手動將它們包含在IDE的構建路徑中。

例如,您可以提取此處引用的類,假設版本24.2.1,使用這個命令:

unzip support-fragment-24.2.1.aar libs/internal_impl-24.2.1.jar