错误充气类片段:在line#7 InflateException二进制XML文件 [英] InflateException Binary XML file at line #7: Error inflating class fragment

查看:130
本文介绍了错误充气类片段:在line#7 InflateException二进制XML文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在做这个问题的一些研究,但没有解决办法还没有为我工作。我已经在片段添加类空构造函数和不同进口片段的尝试,但似乎没有任何工作。我希望你们能帮帮我!

我的活动:

 包com.example.com.example.android.rssfeed;进口android.app.Activity;
进口android.os.Bundle;公共类RssfeedActivity扩展活动实现MyListFragment.OnItemSelectedListener {@覆盖
保护无效的onCreate(捆绑savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.activity_rssfeed);
}公共无效onRssItemSelected(字符串连接){
    DetailFragment片段=(DetailFragment)getFragmentManager()findFragmentById(R.id.detailFragment)。    如果(片段=空&放大器;!&放大器; fragment.isInLayout()){
        fragment.setText(链接);
    }//万一
} // end方法onRssItemSelected} //结束类

我的片段:

 包com.example.com.example.android.rssfeed;
进口android.app.Activity;
进口android.os.Bundle;
进口android.app.Fragment;
进口android.view.LayoutInflater;
进口android.view.View;
进口android.view.ViewGroup;
进口android.widget.Button;
公共类MyListFragment扩展片段{公共MyListFragment(){}私人OnItemSelectedListener侦听器;
@覆盖
公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,捆绑savedInstanceState){
    查看查看= inflater.inflate(R.layout.fragment_rsslist_overview,集装箱,FALSE);
    Button按钮=(按钮)view.findViewById(R.id.btn1);
    button.setOnClickListener(新View.OnClickListener(){        @覆盖
        公共无效的onClick(视图v){
            updateDetail();
        } //结束的onClick
    });
    返回视图。
} //结束onCreateView公共接口OnItemSelectedListener {
    公共无效onRssItemSelected(字符串连接);
} //结束onItemSelectedListener@覆盖
    公共无效onAttach(活动活动){
    super.onAttach(活动);        如果(的instanceof OnItemSelectedListener活动){
            监听=(OnItemSelectedListener)活性;        }其他{
            抛出新ClassCastException异常(activity.toString()
                    +必须实现MyListFragment.OnItemSelectedListener);
        } //其他结束} //结束onAttach//也可以从该活动触发
公共无效updateDetail(){
    //创建假数据
    串NEWTIME =将String.valueOf(System.currentTimeMillis的());
    //将数据发送到活动
    listener.onRssItemSelected(NEWTIME);
} // end方法updateDetail
} //结束类

我的XML片段:

 < LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
机器人:baselineAligned =假
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:方向=横向>    <片段
        机器人:ID =@ + ID / listFragment
        机器人:layout_width =0dp
        机器人:layout_weight =1
        机器人:layout_height =match_parent
        类=com.example.android.rssfeed.MyListFragment
        机器人:layout_marginTop =机器人:ATTR / actionBarSize>< /片断>    <片段
        机器人:ID =@ + ID / detailFragment
        机器人:layout_width =0dp
        机器人:layout_weight =2
        机器人:layout_height =match_parent
        类=com.example.android.rssfeed.DetailFragment>&下; /片断>
< / LinearLayout中>

清单:

 <?XML版本=1.0编码=UTF-8&GT?;
<清单的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
包=com.example.com.example.android.rssfeed
安卓版code =1
机器人:=的versionName1.0><用途-SDK
    安卓的minSdkVersion =12
    机器人:targetSdkVersion =19/><应用
    机器人:allowBackup =真
    机器人:图标=@绘制/ ic_launcher
    机器人:标签=@字符串/ APP_NAME
    机器人:主题=@风格/ AppTheme>
    <活动
        机器人:名字=com.example.com.example.android.rssfeed.RssfeedActivity
        机器人:标签=@字符串/ APP_NAME>
        &所述;意图滤光器>
            <作用机器人:名字=android.intent.action.MAIN/>            <类机器人:名字=android.intent.category.LAUNCHER/>
        &所述; /意图滤光器>
    < /活性GT;
< /用途>

按钮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
机器人:方向=垂直><按钮
    机器人:ID =@ + ID / BTN1
    机器人:layout_width =WRAP_CONTENT
    机器人:layout_height =WRAP_CONTENT
    机器人:文字=preSS更新>< /按钮>
< / LinearLayout中>

LogCat中的错误:

  10月5日至十七日:35:01.864:E / AndroidRuntime(6384):致命异常:主要
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):了java.lang.RuntimeException:无法启动活动ComponentInfo{com.example.com.example.android.rssfeed/com.example.com.example.android.rssfeed.RssfeedActivity}: android.view.InflateException:二进制XML文件行#7:错误充气类片段
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2245)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2295)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.app.ActivityThread.access $ 700(ActivityThread.java:150)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1280)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.os.Handler.dispatchMessage(Handler.java:99)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.os.Looper.loop(Looper.java:137)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.app.ActivityThread.main(ActivityThread.java:5279)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在java.lang.reflect.Method.invokeNative(本机方法)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在java.lang.reflect.Method.invoke(Method.java:511)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1102)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在dalvik.system.NativeStart.main(本机方法)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):android.view.InflateException:二进制XML文件行#7:错误充气类片段产生的原因
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:710)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.view.LayoutInflater.rInflate(LayoutInflater.java:752)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.view.LayoutInflater.inflate(LayoutInflater.java:495)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.view.LayoutInflater.inflate(LayoutInflater.java:397)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.view.LayoutInflater.inflate(LayoutInflater.java:353)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:342)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.app.Activity.setContentView(Activity.java:1928)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在com.example.com.example.android.rssfeed.RssfeedActivity.onCreate(RssfeedActivity.java:11)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.app.Activity.performCreate(Activity.java:5267)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):11 ...更多
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):android.app.Fragment $ InstantiationException:产生的原因无法实例片段com.example.android.rssfeed.MyListFragment:确保类名称存在,是公开的,并有一个空的构造是公
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.app.Fragment.instantiate(Fragment.java:592)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.app.Fragment.instantiate(Fragment.java:560)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.app.Activity.onCreateView(Activity.java:4862)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:686)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):21 ...更多
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):抛出java.lang.ClassNotFoundException:产生的原因没有在路径上找到的类com.example.android.rssfeed.MyListFragment:/数据/应用程序/ COM .example.com.example.android.rssfeed-1.apk
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在java.lang.ClassLoader.loadClass(ClassLoader.java:501)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在java.lang.ClassLoader.loadClass(ClassLoader.java:461)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):在android.app.Fragment.instantiate(Fragment.java:582)
10月5日至十七日:35:01.864:E / AndroidRuntime(6384):24 ...更多


解决方案

  

致:抛出java.lang.ClassNotFoundException:没有找到类
  在路径com.example.android.rssfeed.MyListFragment:
  /data/app/com.example.com.example.android.rssfeed-1.apk


更改此

 类=com.example.android.rssfeed.MyListFragment

 类=com.example.com.example.android.rssfeed.MyListFragment

原因是包名包com.example.com.example.android.rssfeed

同样

 类=com.example.com.example.android.rssfeed.DetailFragment

如果包名是一样的。

更改此

 <按钮
机器人:ID =@ + ID / BTN1
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:文字=preSS更新>

 <按钮
机器人:ID =@ + ID / BTN1
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:文字=preSS更新/>

I've been doing some research of this problem but no solution has yet to work for me. I've added empty constructors in the fragment classes and tried with different imports of fragments, but nothing seems to work. I hope you guys can help me!

My Activity:

package com.example.com.example.android.rssfeed;

import android.app.Activity;
import android.os.Bundle;

public class RssfeedActivity extends Activity implements MyListFragment.OnItemSelectedListener {

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

public void onRssItemSelected(String link) {
    DetailFragment fragment = (DetailFragment) getFragmentManager().findFragmentById(R.id.detailFragment);

    if (fragment != null && fragment.isInLayout()) {
        fragment.setText(link);
    }//end if
}//end method onRssItemSelected

}//end class

My fragment:

package com.example.com.example.android.rssfeed;
import android.app.Activity;
import android.os.Bundle;
import android.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;


public class MyListFragment extends Fragment {

public MyListFragment() {

}

private OnItemSelectedListener listener;


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_rsslist_overview, container, false);
    Button button = (Button) view.findViewById(R.id.btn1);
    button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            updateDetail();
        }//end onClick
    });
    return view;
}//end onCreateView

public interface OnItemSelectedListener {
    public void onRssItemSelected(String link);
}//end onItemSelectedListener

@Override
    public void onAttach(Activity activity) {
    super.onAttach(activity);

        if (activity instanceof OnItemSelectedListener) {
            listener = (OnItemSelectedListener) activity;

        } else {
            throw new ClassCastException(activity.toString()
                    + "Must implement MyListFragment.OnItemSelectedListener");
        }//end else

}//end onAttach

//May also be triggered from the activity
public void updateDetail() {
    //Create fake data
    String newTime = String.valueOf(System.currentTimeMillis());
    // Send data to Activity
    listener.onRssItemSelected(newTime);
}//end method updateDetail
}//end class

My fragment XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:baselineAligned="false"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >

    <fragment
        android:id="@+id/listFragment" 
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="match_parent"
        class="com.example.android.rssfeed.MyListFragment"
        android:layout_marginTop="?android:attr/actionBarSize"></fragment>



    <fragment
        android:id="@+id/detailFragment"
        android:layout_width="0dp"
        android:layout_weight="2"
        android:layout_height="match_parent"
        class="com.example.android.rssfeed.DetailFragment"></fragment>




</LinearLayout>

Manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.com.example.android.rssfeed"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="12"
    android:targetSdkVersion="19" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.com.example.android.rssfeed.RssfeedActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

Button 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" >

<button
    android:id="@+id/btn1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Press to Update">

</button>
</LinearLayout>

LogCat error:

05-17 10:35:01.864: E/AndroidRuntime(6384): FATAL EXCEPTION: main
05-17 10:35:01.864: E/AndroidRuntime(6384): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.com.example.android.rssfeed/com.example.com.example.android.rssfeed.RssfeedActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
05-17 10:35:01.864: E/AndroidRuntime(6384):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2245)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2295)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at android.app.ActivityThread.access$700(ActivityThread.java:150)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at  android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at android.os.Looper.loop(Looper.java:137)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at android.app.ActivityThread.main(ActivityThread.java:5279)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at java.lang.reflect.Method.invokeNative(Native Method)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at java.lang.reflect.Method.invoke(Method.java:511)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at dalvik.system.NativeStart.main(Native Method)
05-17 10:35:01.864: E/AndroidRuntime(6384): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
05-17 10:35:01.864: E/AndroidRuntime(6384):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:710)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:752)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:342)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at android.app.Activity.setContentView(Activity.java:1928)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at com.example.com.example.android.rssfeed.RssfeedActivity.onCreate(RssfeedActivity.java:11)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at android.app.Activity.performCreate(Activity.java:5267)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209)
05-17 10:35:01.864: E/AndroidRuntime(6384):     ... 11 more
05-17 10:35:01.864: E/AndroidRuntime(6384): Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment com.example.android.rssfeed.MyListFragment: make sure class name exists, is public, and has an empty constructor that is public
05-17 10:35:01.864: E/AndroidRuntime(6384):     at android.app.Fragment.instantiate(Fragment.java:592)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at android.app.Fragment.instantiate(Fragment.java:560)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at android.app.Activity.onCreateView(Activity.java:4862)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:686)
05-17 10:35:01.864: E/AndroidRuntime(6384):     ... 21 more
05-17 10:35:01.864: E/AndroidRuntime(6384): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.android.rssfeed.MyListFragment" on path: /data/app/com.example.com.example.android.rssfeed-1.apk
05-17 10:35:01.864: E/AndroidRuntime(6384):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
05-17 10:35:01.864: E/AndroidRuntime(6384):     at android.app.Fragment.instantiate(Fragment.java:582)
05-17 10:35:01.864: E/AndroidRuntime(6384):     ... 24 more

解决方案

Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.android.rssfeed.MyListFragment" on path: /data/app/com.example.com.example.android.rssfeed-1.apk

Change this

 class="com.example.android.rssfeed.MyListFragment"

to

 class="com.example.com.example.android.rssfeed.MyListFragment"

cause the packagename is package com.example.com.example.android.rssfeed.

Similarly

 class="com.example.com.example.android.rssfeed.DetailFragment"

if the package name is the same

Change this

<button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Press to Update">

To

<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Press to Update" />

这篇关于错误充气类片段:在line#7 InflateException二进制XML文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆