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.Fragmentandroid.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异常
原文地址:https://www.cnblogs.com/guobin-/p/13194907.html