简体   繁体   English

片段中的错误夸大活动:InflateException

[英]Error Inflating Activity from Fragment: InflateException

I have a fragment, and I want to click on a button in the fragment to open a corresponding Activity that also hosts a fragment. 我有一个片段,我想单击片段中的按钮以打开一个相应的活动,该活动也包含一个片段。

I am trying to test how the Activity appears (after button click) and am receiving what appears to be an inflation error. 我正在尝试测试“活动”的显示方式(单击按钮后),并且正在接收似乎是通货膨胀错误的内容。 Here is the first fragment containing the button to view the next fragment: 这是包含查看下一个片段的按钮的第一个片段:

HomePollsFragment.Java HomePollsFragment.Java

 mLatestTestButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent latestActivity = new Intent(getActivity().getApplicationContext(), LatestActivity.class);
            startActivity(latestActivity);
        }
    });

And then here is the code for the activity that is opened on button click: 然后是在单击按钮时打开的活动的代码:

public class LatestActivity extends AppCompatActivity implements LatestFragment.OnFragmentInteractionListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_latest);

    // Check that the activity is using the layout version with
    // the fragment_container FrameLayout
    if (findViewById(R.id.latest_fragment_container) != null) {

        // However, if we're being restored from a previous state,
        // then we don't need to do anything and should return or else
        // we could end up with overlapping fragments.
        if (savedInstanceState != null) {
            return;
        }

        // Create a new Fragment to be placed in the activity layout
        LatestFragment latestFragment = new LatestFragment();

        // In case this activity was started with special instructions from an
        // Intent, pass the Intent's extras to the fragment as arguments
        latestFragment.setArguments(getIntent().getExtras());

        // Add the fragment to the 'fragment_container' FrameLayout
        getSupportFragmentManager().beginTransaction()
                .add(R.id.latest_fragment_container, latestFragment).commit();
    }



}

@Override
public void onFragmentInteraction(Uri uri) {

 }
}

The error I am receiving is below and appears to be related to the following line: 我收到的错误在下面,并且似乎与以下行有关:

setContentView(R.layout.activity_latest);

Error: 错误:

06-27 22:35:47.787 4252-4252/com.sourcey.materialloginexample E/AndroidRuntime: FATAL EXCEPTION: main
                                                                            java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sourcey.materialloginexample/com.troychuinard.fanpolls.LatestActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
                                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
                                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
                                                                                at android.app.ActivityThread.access$600(ActivityThread.java:141)
                                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
                                                                                at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                                at android.os.Looper.loop(Looper.java:137)
                                                                                at android.app.ActivityThread.main(ActivityThread.java:5103)
                                                                                at java.lang.reflect.Method.invokeNative(Native Method)
                                                                                at java.lang.reflect.Method.invoke(Method.java:525)
                                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
                                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
                                                                                at dalvik.system.NativeStart.main(Native Method)
                                                                             Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
                                                                                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
                                                                                at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
                                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
                                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
                                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
                                                                                at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)
                                                                                at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
                                                                                at com.troychuinard.fanpolls.LatestActivity.onCreate(LatestActivity.java:14)
                                                                                at android.app.Activity.performCreate(Activity.java:5133)
                                                                                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
                                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
                                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
                                                                                at android.app.ActivityThread.access$600(ActivityThread.java:141) 
                                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
                                                                                at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                                                at android.os.Looper.loop(Looper.java:137) 
                                                                                at android.app.ActivityThread.main(ActivityThread.java:5103) 
                                                                                at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                                at java.lang.reflect.Method.invoke(Method.java:525) 
                                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
                                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
                                                                                at dalvik.system.NativeStart.main(Native Method) 
                                                                             Caused by: java.lang.NullPointerException: name == null
                                                                                at java.lang.VMClassLoader.findLoadedClass(Native Method)
                                                                                at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:354)
                                                                                at java.lang.ClassLoader.loadClass(ClassLoader.java:491)
                                                                                at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
                                                                                at android.support.v4.app.Fragment.isSupportFragmentClass(Fragment.java:454)
                                                                                at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2252)
                                                                                at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:120)
                                                                                at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:356)
                                                                                at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:31)
                                                                                at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:79)
                                                                                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
                                                                                at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
                                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
                                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
                                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
                                                                                at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
                                                                                at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                                                                                at com.troychuinard.fanpolls.LatestActivity.onCreate(LatestActivity.java:14) 
                                                                                at android.app.Activity.performCreate(Activity.java:5133) 
                                                                                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
                                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175) 
                                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
                                                                                at android.app.ActivityThread.access$600(ActivityThread.java:141) 
                                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
                                                                                at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                                                at android.os.Looper.loop(Looper.java:137) 
                                                                                at android.app.ActivityThread.main(ActivityThread.java:5103) 
                                                                                at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                                at java.lang.reflect.Method.invoke(Method.java:525) 
                                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
                                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
                                                                                at dalvik.system.NativeStart.main(Native Method) 

activity_latest.xml activity_latest.xml

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

    <fragment
        android:id="@+id/latest_fragment_container"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="0dp" />

The error is telling you that you have no name attribute on the <fragment> element specifying its class. 错误告诉您<fragment>元素上没有指定其类的name属性。

NullPointerException: name == null

However, it looks like you mean to load the Fragment yourself, so you don't want a <fragment> element. 但是,您似乎要自己加载Fragment ,所以您不需要<fragment>元素。 Instead, you want a ViewGroup that will hold the Fragment after the dynamic FragmentTransaction . 相反,你想有一个ViewGroup ,将持有的Fragment动态后FragmentTransaction Change your <fragment> to a <FrameLayout> . 将您的<fragment>更改为<FrameLayout>

That because you have a wrong on your activity_latest.xml. 那是因为您的activity_latest.xml错误。 You tried to add your LatestFragment to Fragment. 您试图将您的LatestFragment添加到Fragment。 You can add fragment into ViewGroup like FrameLayout. 您可以像FrameLayout一样将片段添加到ViewGroup中。 Change your code like here. 像这里一样更改代码。

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

    <FrameLayout
        android:id="@+id/latest_fragment_container"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="0dp" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Android InflateException错误夸大类片段 - Android InflateException error inflating class fragment 无法启动活动ComponentInfo {}:android.view.InflateException:二进制XML文件第4行:夸大类片段的错误 - Unable to start activity ComponentInfo{}: android.view.InflateException: Binary XML file line #4: Error inflating class fragment 无法启动活动ComponentInfo {Activity}:android.view.InflateException:二进制XML文件行#12:错误膨胀类片段 - Unable to start activity ComponentInfo{Activity}: android.view.InflateException: Binary XML file line #12: Error inflating class fragment 由 android 工作室制作的导航抽屉:android.view.InflateException:错误充气 class 片段 - navigation drawer made from android studio : android.view.InflateException: Error inflating class fragment 错误膨胀类片段InflateException二进制XML文件 - Error inflating class fragment InflateException Binary XML file 第 7 行的 InflateException 二进制 XML 文件:错误膨胀类片段 - InflateException Binary XML file at line #7: Error inflating class fragment android.view.InflateException夸大类片段的错误 - android.view.InflateException Error inflating class fragment 错误夸大类片段:android.view.InflateException - Error inflating class fragment: android.view.InflateException 使用导航活动在 Recyclerview 中膨胀 Class 片段时出错 - Error inflating Class Fragment in Recyclerview with Navigation Activity 错误在活动映射xml中膨胀类片段 - Error Inflating class fragment in activity maps xml
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM