This is my fragment inputtext_fragment.xml:
<?xml version="1.0" encoding="utf-8"?>
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/inputtextfragm"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/inputtext_layout"
android:visibility="invisible"
android:layout_height="wrap_content"
android:layout_width="match_parent"
...>
...
</LinearLayout>
</fragment>
inputText fragment in java:
package de.company.android.inputtext;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class InputTextFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
try {
return inflater.inflate(R.layout.inputtext_fragment, container, false);
}
catch (Throwable t) {
t.printStackTrace();
return null;
}
}
}
This is the activity layout:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layout"
tools:context="de.company.android.testview.MainActivity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000">
...
<fragment
android:id="@+id/console"
android:name="de.company.android.inputtext.InputTextFragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
I get the following error on launch, when the content view of the activity is set onCreate():
D/AndroidRuntime: Shutting down VM E/AndroidRuntime: FATAL EXCEPTION: main Process: de.company.android.testview, PID: 573 java.lang.RuntimeException: Unable to start activity ComponentInfo{de.company.android.testview/de.company.android.testview.MainActivity}: android.view.InflateException: Binary XML file line #153: Binary XML file line #153: Error inflating class fragment at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3319) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415) at android.app.ActivityThread.access$1100(ActivityThread.java:229) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:7325) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by: android.view.InflateException: Binary XML file line #153: Binary XML file line #153: Error inflating class fragment ...
Caused by: java.lang.IllegalStateException: Fragment de.company.android.inputtext.InputTextFragment did not create a view. at android.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2253) at android.app.FragmentController.onCreateView(FragmentController.java:99) at android.app.Activity.onCreateView(Activity.java:6085) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:766) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716) at android.view.LayoutInflater.rInflate(LayoutInflater.java:847) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810) at android.view.LayoutInflater.inflate(LayoutInflater.java:527) at android.view.LayoutInflater.inflate(LayoutInflater.java:429) at android.view.LayoutInflater.inflate(LayoutInflater.java:380) at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:479) at android.app.Activity.setContentView(Activity.java:2400) at de.company.android.testview.MainActivity.onCreate(MainActivity.java:1697) at android.app.Activity.performCreate(Activity.java:6904) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3266) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415) at android.app.ActivityThread.access$1100(ActivityThread.java:229) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:7325) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
This is the error logged inside catch:
W/System.err: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class fragment
W/System.err: at android.view.LayoutInflater.inflate(LayoutInflater.java:551)
W/System.err: at android.view.LayoutInflater.inflate(LayoutInflater.java:429)
W/System.err: at de.company.android.inputtext.InputTextFragment.onCreateView(InputTextFragment.java:23)
W/System.err: at android.app.Fragment.performCreateView(Fragment.java:2281)
W/System.err: at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:955)
W/System.err: at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1142)
W/System.err: at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1246)
W/System.err: at android.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2223)
W/System.err: at android.app.FragmentController.onCreateView(FragmentController.java:99)
W/System.err: at android.app.Activity.onCreateView(Activity.java:6085)
W/System.err: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:766)
W/System.err: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716)
W/System.err: at android.view.LayoutInflater.rInflate(LayoutInflater.java:847)
W/System.err: at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
W/System.err: at android.view.LayoutInflater.inflate(LayoutInflater.java:527)
...
W/System.err: Caused by: java.lang.NullPointerException
W/System.err: at java.lang.VMClassLoader.findLoadedClass(Native Method)
W/System.err: at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:362)
W/System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:499)
W/System.err: at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
W/System.err: at android.app.Fragment.instantiate(Fragment.java:620)
W/System.err: at android.app.Fragment.instantiate(Fragment.java:598)
W/System.err: at android.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2214)
W/System.err: at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:192)
W/System.err: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:766)
W/System.err: ... 33 more
I cannot find out what is wrong. The activity and the fragment are in different modules, but everything is configured right so that the de.company.android.inputtext utils are correctly referenced.
fragmentas root. Use a regular view group such as FrameLayout or LinearLayout. - Eugen Pechanec