1. 程式人生 > >Eclipse 使用 android.support.v7 包時,遇到的問題s

Eclipse 使用 android.support.v7 包時,遇到的問題s

在編寫android的程式碼時經常需要考慮低版本的相容性問題,eclispe中建立android工程minimum sdk的版本小於target的版本時,有可能會自動生成一個appcompat_v7的工程。

1. Android 匯入android.support.v7.cardview後,出現java.lang.ClassNotFoundException問題

這裡是我手動建立v7包工程的步驟。
以appcompat_v7為例,在eclipse中, 點選 File -> Import -> Existing Android Code Into Workspace -> browse sdk目錄下的 /extras/android/support/v7/appcompat , 勾選 copy projects into workspace -> finish.

我按照上面的方法匯入cardview的包,將其標記為 library, 在android的工程中新增cardview的包後,
出現

 java.lang.ClassNotFoundException: Didn't find class "android.support.v7.widget.CardView" on Path 

的異常。

完整的步驟
1. 開啟 File -> Import -> Existing Android code into workspace –> Browse (sdk/extras/android /support/v7/cardview) –> ok –> Finish
2. 右擊 cardview 專案 –> Properties –> Android –> 勾選 isLibrary –> Apply –> ok
3. 右擊 自己的專案 –> Properties –> Android –> Add –> cardview –> apply –> ok
4. 右擊 自己的專案 –> build path –> configure build path –>選項卡 libraries–>add jar–> 展開 cardview–> 展開libs–>選擇 android.support.v7.widget.CardView.jar
5. 選項卡 order and export–>勾選 android.support.v7.widget.CardView.jar–>ok

2.繼承AppcompatActivity時出現的問題

v7包ActionBarActivity不推薦使用後,用AppCompatActivity代替。

繼承AppCompatActivity後, 發現Ecliipse報錯

The type android.support.v4.app.TaskStackBuilder$SupportParentable cannot be resolved. It is indirectly referenced from required .class files

然後我嘗試在build path中手動加入 v4 的包,Eclipse錯誤消失,但是編譯執行時,又報錯

activity is inconsistent

將主專案的v4的包從工程中移除,就OK了