1. 程式人生 > 實用技巧 >android.support.v7.app.AppCompatActivity不能使用的解決辦法

android.support.v7.app.AppCompatActivity不能使用的解決辦法

最近Android Studio 更新到4.0版本後,在構建專案時使用

  • android.support.v7.XX
  • android.support.v4.XX

發現在xml檔案中,原先我最常使用的DrawerLayout變紅了。同時在andriod虛擬機器上執行時,發現軟體竟然閃退了。

我不禁陷入了思考。在網路上衝浪好幾天後,發現原來是android X搞的鬼。

現在在新版本中構建的時候,預設選用android X的形式。
具體情況,可以在app中的build.gradle中檢視。

例如你可以看到這些新的依賴:

implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'androidTestImplementation 
'androidx.test.espresso:espresso-core:3.2.0'

去Google android研發網站查詢到了關於Android X的解釋:

AndroidX 對原始 Android 支援庫進行了重大改進,後者現在已不再維護。
androidx 軟體包完全取代了支援庫,不僅提供同等的功能,而且提供了新的庫。
此外,AndroidX 還包括以下功能:

  1. AndroidX 中的所有軟體包都使用一致的名稱空間,以字串 androidx 開頭。支援庫軟體包已對映到對應的 androidx.* 軟體包。有關所有舊類到新類以及舊構建工件到新構建工件的完整對映,請參閱軟體包重構頁面。
  2. 與支援庫不同,androidx 軟體包會單獨維護和更新。從版本 1.0.0 開始,androidx 軟體包使用嚴格的語義版本控制。您可以單獨更新專案中的各個 AndroidX 庫。
  3. 版本 28.0.0 是支援庫的最後一個版本。我們將不再發布 android.support 庫版本。所有新功能都將在 androidx 名稱空間中開發。

怎麼使用Android X呢?

例如:

把原先的

import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;

改為

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

就可以了

原先的很多都要去替換。包括在build.gradle、xml檔案、java檔案中。

具體詳細的替換,請前往谷歌開發者網站檢視。
https://developer.android.com/jetpack/androidx/migrate/class-mappings