不能转换为android.app.Fragment转换为、android、Fragment、app

2023-09-04 10:50:31 作者:生命要继续

我只是想对碎片一看,我得到了一些probs与愚蠢的东西... 还有就是我SkippersActivity.java:

 公共类SkippersActivity延伸活动{
 公共无效的onCreate(包savedInstanceState){
     super.onCreate(savedInstanceState);
    的setContentView(R.layout.skippers_fragment);
 }
}
 

和我skippers_fragment.xml:

 < XML版本=1.0编码=UTF-8&GT?;
    <片段
    的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:名称=com.arkezis.globedroid.SkippersFragment
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent
    机器人:ID =@ + ID / skippers_fragment>
    &所述; /片断>
 

和有我SkippersFragment.xml:

 公共类SkippersFragment扩展片段{
公共查看onCreateView(LayoutInflater充气,容器的ViewGroup,捆绑savedInstanceState)
{
    查看MAINVIEW = inflater.inflate(R.layout.skippers,集装箱,假);
    返回MAINVIEW;
}
 
android fragment 会加载webview不出来 安卓通过Build Variants定制多个App以及WebView访问https...

}

我的skippers.xml:

 < XML版本=1.0编码=UTF-8&GT?;
    < LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent
    机器人:方向=垂直>
    < ListView的机器人:ID =@ + ID / list_skippers_all
        机器人:layout_width =match_parent
    机器人:layout_height =match_parent>
    < / ListView控件>
    < / LinearLayout中>
 

为什么我有:

  04-30 13:45:16.355:E / AndroidRuntime(30077):java.lang.RuntimeException的:无法启动的活动ComponentInfo {com.arkezis.globedroid / com.arkezis。 globedroid.SkippersActivity}:android.view.InflateException:二进制XML文件中的行#2:错误充气类片段
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.ActivityThread.access $ 600(ActivityThread.java:123)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1147)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.os.Handler.dispatchMessage(Handler.java:99)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.os.Looper.loop(Looper.java:137)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.ActivityThread.main(ActivityThread.java:4424)
04-30 13:45:16.355:E / AndroidRuntime(30077):在java.lang.reflect.Method.invokeNative(本机方法)
04-30 13:45:16.355:E / AndroidRuntime(30077):在java.lang.reflect.Method.invoke(Method.java:511)
04-30 13:45:16.355:E / AndroidRuntime(30077):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:784)
04-30 13:45:16.355:E / AndroidRuntime(30077):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
04-30 13:45:16.355:E / AndroidRuntime(30077):在dalvik.system.NativeStart.main(本机方法)
04-30 13:45:16.355:E / AndroidRuntime(30077):android.view.InflateException:二进制XML文件中的行#2:错误充气类片段产生的原因
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.view.LayoutInflater.inflate(LayoutInflater.java:466)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.view.LayoutInflater.inflate(LayoutInflater.java:396)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.view.LayoutInflater.inflate(LayoutInflater.java:352)
04-30 13:45:16.355:E / AndroidRuntime(30077):在com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:251)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.Activity.setContentView(Activity.java:1835)
04-30 13:45:16.355:E / AndroidRuntime(30077):在com.arkezis.globedroid.SkippersActivity.onCreate(SkippersActivity.java:19)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.Activity.performCreate(Activity.java:4465)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
04-30 13:45:16.355:E / AndroidRuntime(30077):11 ...更多
04-30 13:45:16.355:E / AndroidRuntime(30077):由:java.lang.ClassCastException:com.arkezis.globedroid.SkippersFragment不能转换为android.app.Fragment
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.Fragment.instantiate(Fragment.java:574)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.Fragment.instantiate(Fragment.java:549)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.app.Activity.onCreateView(Activity.java:4235)
04-30 13:45:16.355:E / AndroidRuntime(30077):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:673)
 

解决方案

如果我猜的话, SkippersFragment 正在扩大 android.support.v4 .app.Fragment 。然而, SkippersActivity 是没有的延伸 android.support.v4.app.FragmentActivity 。因此, SkippersActivity 正在尝试使用本机API级别11片段。

I'm just trying to have a look on Fragment and I got some probs with stupid stuff... There is my SkippersActivity.java :

public class SkippersActivity extends Activity{
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
    setContentView(R.layout.skippers_fragment);
 }
}

And my skippers_fragment.xml :

 <?xml version="1.0" encoding="utf-8"?>
    <fragment
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:name="com.arkezis.globedroid.SkippersFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/skippers_fragment">
    </fragment>

And there is my SkippersFragment.xml :

public class SkippersFragment extends Fragment{
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{
    View mainView = inflater.inflate(R.layout.skippers, container, false);      
    return mainView;
}   

}

My skippers.xml :

 <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >    
    <ListView android:id="@+id/list_skippers_all"
        android:layout_width="match_parent"
    android:layout_height="match_parent">
    </ListView>
    </LinearLayout>

Why do I got :

04-30 13:45:16.355: E/AndroidRuntime(30077): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.arkezis.globedroid/com.arkezis.globedroid.SkippersActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
04-30 13:45:16.355: E/AndroidRuntime(30077):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at android.app.ActivityThread.access$600(ActivityThread.java:123)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at android.os.Handler.dispatchMessage(Handler.java:99)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at android.os.Looper.loop(Looper.java:137)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at android.app.ActivityThread.main(ActivityThread.java:4424)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at java.lang.reflect.Method.invokeNative(Native Method)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at java.lang.reflect.Method.invoke(Method.java:511)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at dalvik.system.NativeStart.main(Native Method)
04-30 13:45:16.355: E/AndroidRuntime(30077): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
04-30 13:45:16.355: E/AndroidRuntime(30077):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:251)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at android.app.Activity.setContentView(Activity.java:1835)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at com.arkezis.globedroid.SkippersActivity.onCreate(SkippersActivity.java:19)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at android.app.Activity.performCreate(Activity.java:4465)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
04-30 13:45:16.355: E/AndroidRuntime(30077):    ... 11 more
04-30 13:45:16.355: E/AndroidRuntime(30077): Caused by: java.lang.ClassCastException: com.arkezis.globedroid.SkippersFragment cannot be cast to android.app.Fragment
04-30 13:45:16.355: E/AndroidRuntime(30077):    at android.app.Fragment.instantiate(Fragment.java:574)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at android.app.Fragment.instantiate(Fragment.java:549)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at android.app.Activity.onCreateView(Activity.java:4235)
04-30 13:45:16.355: E/AndroidRuntime(30077):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:673)

解决方案

If I had to guess, SkippersFragment is extending android.support.v4.app.Fragment. However, SkippersActivity is not extending android.support.v4.app.FragmentActivity. So SkippersActivity is trying to use native API Level 11 fragments.