tsy*_*ync 154 android android-layout android-fragments
我得到了错误
Unable to start activity ComponentInfo{de.androidbuch.activiti/de.androidbuch.activiti.task.Activity}: android.view.InflateException: Binary XML file line #11: Error inflating class fragment
当我通过肖像和横向模式切换时.我正在使用片段.我的xml是:
 <LinearLayout android:id="@+id/mainLayout"
               android:orientation="horizontal"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content" >
    <ListView android:id="@+id/android:list"
              android:layout_height="wrap_content"
              android:layout_width="fill_parent"/> 
    <fragment android:id="@+id/fragmentDetails"
              android:layout_height="fill_parent"
              android:layout_width="fill_parent"
              class="de.androidbuch.activiti.task.TaskDetailsFragment"/> 
</LinearLayout>
如果我通过横向和纵向模式切换一切正常.但是当我点击我的片段(我可以看到我的片段)然后切换到另一种模式时,我得到了错误.知道怎么解决吗?在这里找到了一些答案,但这些都没有帮助我...
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): FATAL EXCEPTION: main
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): java.lang.RuntimeException: Unable to start activity         
ComponentInfo{de.androidbuch.activiti/de.androidbuch.activiti.task.Activity}:   android.view.InflateException: Binary XML file line #11: Error inflating class fragment
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1736)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1752)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3097)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread.access$1600(ActivityThread.java:123)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:997)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.os.Looper.loop(Looper.java:126)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread.main(ActivityThread.java:3998)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at java.lang.reflect.Method.invokeNative(Native Method)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at java.lang.reflect.Method.invoke(Method.java:491)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at dalvik.system.NativeStart.main(Native Method)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class fragment
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:688)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:724)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:727)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.view.LayoutInflater.inflate(LayoutInflater.java:391)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.view.LayoutInflater.inflate(LayoutInflater.java:347)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:227)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.Activity.setContentView(Activity.java:1771)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at de.androidbuch.activiti.task.TaskActivity.onCreate(TaskActivity.java:83)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1700)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     ... 12 more
Dan*_*son 128
正如hdemirchian所说,请务必使用:
import android.support.v4.app.Fragment;
并确保使用片段的Activity扩展FragmentActivity而不是常规Activity,
import android.support.v4.app.FragmentActivity;
拿到FragmentActivity类.
Gri*_* A. 92
android.view.InflateException: Binary XML file line: #... Error inflating class fragment如果getActivity()在onActivityCreated()调用之前在片段内部进行操作,则可能会发生异常.在这种情况下,您收到错误的活动参考,不能依赖它.
例如,下一个模式是错误的:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) 
{
    final View view = inflater.inflate(R.layout..., container, false);
    Button button = getActivity().findViewById(R.id...);
    button.setOnClickListener(...); - another problem: button is null
    return view;
}
正确的模式#1
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) 
{
    final View view = inflater.inflate(R.layout..., container, false);
    Button button = view.findViewById(R.id...);
    button.setOnClickListener(...);
    return view;
}
正确的模式#2
@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    Button button = getActivity().findViewById(R.id...);
    button.setOnClickListener(...);
}
jam*_*mes 53
确保你的Activity延伸FragmentActivity.
Mat*_*lis 34
我有同样的错误.我整天都在挖,不知道但是我想我在这个问题上试过了25个解决方案.没有工作,直到凌晨2点我发现我在应用程序清单xml中缺少这一行:
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
那条线在<application>标签内.我真的希望这对某人有帮助.GL.
小智 22
我有同样的问题.我的解决方案是FragmentActivity中的super.onCreate和setContentView的顺序
以下订单工作正常:
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fc_activity_list_profiles);
Dhi*_*pta 17
这很难理解 - 如果你<fragment>在一个(可能)动态加载的片段中嵌入一个基于XML布局的标签FragmentManager,那么你就会开始得到奇怪的错误,试图给你的片段xml充气.
事实证明,这是不支持的-如果你通过纯粹的做到这一点会正常工作FragmentManager的方法.
我遇到了这个问题,因为我正在尝试<DrawerLayout>从xml中加载一个片段,onCreateView()当我弹出后面的堆栈时,这导致了方法崩溃.
小智 16
我遇到了与你面临的问题相同的问题.顶部的提示都没有帮助我.后来,我发现我所要做的就是修复我的导入:
import android.app.Fragment;
至:
import android.support.v4.app.Fragment;
Lei*_*Lei 12
确保片段的onCreateView方法中没有引发异常.如果在此方法中引发任何异常,则logcat将不会显示异常的确切详细信息,而是始终显示消息:
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.fragment" 
on path: DexPathList[[zip file "/data/app/com.package/base.apk"],
nativeLibraryDirectories=[/data/app/com.package/lib/arm64, /vendor/lib64, /system/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
Blu*_*ell 11
你有没有尝试过:
 <fragment
            android:name="de.androidbuch.activiti.task.TaskDetailsFragment"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />
如果您的TaskDetailsFragment延期android.app.Fragment,请改变   onCreateView().
返回要在片段中显示的视图,或使用LayoutInflater将布局转换为视图并将其返回.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View mainview = inflater.inflate(R.layout.main, null);
    return mainview;
}
希望这有效.:)
我出于不同的原因收到了这个错误.
重现步骤:
〜>我的问题是我创建了一个全新的空白应用程序.
〜>然后我从File~> New File Menu生成一个自定义片段.
〜>继续通过添加布局和按钮等来自定义片段.
〜>在创建应用程序时为我生成的自动生成的activity_my.xml中引用了新的自定义片段.这样做允许XML为我生成对象.
通过File~> New File Menu生成自定义片段时,它是自动生成接口函数存根并将其放在片段类文件的底部.
这意味着您的MyActivity类必须实现此接口.如果没有,则仅在引用xml中的片段时才会发生上述错误.通过完全删除XML中Fragment的引用,并通过MyActivity.java类文件中的代码创建片段,Logcat会生成更简洁的错误,详细解释问题并抱怨接口.这在项目模板活动+片段中进行了演示.虽然,<〜那个项目模板不会生成接口存根.
检查你的类路径,这可能是视图充气器找不到你的xml class ="de.androidbuch.activiti.task.TaskDetailsFragment"中定义的类定义,上面的路径可能是错误的.
| 归档时间: | 
 | 
| 查看次数: | 270956 次 | 
| 最近记录: |