Android开发:android.support.v7.widget.AppCompatButton cannot be cast to android.widget.EditText;使用Fragment时不同引入包的问题解决
一、问题记录
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.gb.wofei/com.example.gb.wofei.LoginActivity}: java.lang.ClassCastException:
android.support.v7.widget.AppCompatButton cannot be cast to android.widget.EditText
二、问题解决
1、更换引入包:
在使用Fragment做底部导航栏时遇到了这个问题,查了资料发现在引入jar包时要引入import android.app.Fragment;,不能引入import android.support.v4.app.Fragment;。
在引入后者时,代码中不会报错,但运行程序时则会报以上错误。
2、清理项目:
Android项目中要经常clean项目,清除缓存和编译,有时候常常因为缓存导致修改不生效。
三、拓展整理
1、查了一些资料发现,android.app.Fragment和android.support.v4.app.Fragment两个包:
前者较为简单,后者较为复杂,且两个包的Fragment不兼容,不能混合使用,导错了包就会引发运行错误。
2、区别整理
android.app.Fragment | android.support.v4.app.Fragment | |
最低支持版本不同 |
android:minSdkVersion="11" 即3.0版 |
android:minSdkVersion="4" 即1.6版 |
获取方法不同 | Fragmentmanager fragmentManager = getFragmentManager(); | FragmentManager fragmentManager = getSupportFragmentManager(); |
XML标签的使用 | 可以使用<fragment>标签 | 不能使用<fragment>标签,会抛出android.view.InflateException: Binary XML file line #7: Error inflating class fragment异常 |