Eclipse 使用 android.support.v7 包时,遇到的问题s

来源:互联网 发布:mac怎么玩英雄杀 编辑:程序博客网 时间:2024/06/05 18:48

在编写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 

的异常。

后来发现步骤并不完整。 参考 http://stackoverflow.com/questions/27179363/use-cardview-with-eclipse

完整的步骤
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

后来参考stackoverflow的解答
http://stackoverflow.com/questions/17851515/the-hierarchy-of-the-type-activity-is-inconsistent-when-extending-actionbaractiv

将主项目的v4的包从工程中移除,就OK了

0 0
原创粉丝点击