android.view.inflate исключение, двоичный файл xml, строка № 28 Ошибка при раздувании класса com.xyz.featureTop

Я получаю сообщение об ошибке при загрузке макета в действие. Пожалуйста, посмотрите в приведенном ниже коде мой файл макета xml -

 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="1" >

    <com.xyz.FeatureTop
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=".35" >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/white"
            android:gravity="center"
            android:text="Hello Feature Top"
            android:textColor="@android:color/black" />
    </com.xyz.FeatureTop>

    <com.xyz.Middle
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=".35" >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/white"
            android:gravity="center"
            android:text="Hello Feature Middle"
            android:textColor="@android:color/black" />
    </com.xyz.Middle>

    <com.xyz.FeatureBottom
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight=".3" >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/white"
            android:gravity="center"
            android:text="Hello Feature Bottom"
            android:textColor="@android:color/black" />
    </com.xyz.FeatureBottom>
</LinearLayout>

и ниже мои классы -

public class Xyz extends TabActivity {

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

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    return super.onOptionsItemSelected(item);
}

public class FeatureTop extends LinearLayout implements
        IndustryCollectionDetailsListener {

    public FeatureTop(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

    public FeatureTop(Context context, AttributeSet attrs) {
        super(context, attrs);

    }

    public FeatureTop(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);

    }

    @Override
    public void featureTopDownloadSuccess() {
        // TODO Auto-generated method stub

    }

    @Override
    public void featureTopDownloadFail() {
        // TODO Auto-generated method stub

    }

    @Override
    public void featureBottomDownloadSuccess() {
        // TODO Auto-generated method stub

    }

    @Override
    public void featureBottomDownloadFail() {
        // TODO Auto-generated method stub

    }

    @Override
    public void middleDownloadSuccess() {
        // TODO Auto-generated method stub

    }

    @Override
    public void middleDownloadFail() {
        // TODO Auto-generated method stub

    }
}

public class FeatureBottom extends LinearLayout implements
        IndustryCollectionDetailsListener {

    public FeatureBottom(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

    public FeatureBottom(Context context, AttributeSet attrs) {
        super(context, attrs);

    }

    public FeatureBottom(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);

    }

    @Override
    public void featureTopDownloadSuccess() {
        // TODO Auto-generated method stub

    }

    @Override
    public void featureTopDownloadFail() {
        // TODO Auto-generated method stub

    }

    @Override
    public void featureBottomDownloadSuccess() {
        // TODO Auto-generated method stub

    }

    @Override
    public void featureBottomDownloadFail() {
        // TODO Auto-generated method stub

    }

    @Override
    public void middleDownloadSuccess() {
        // TODO Auto-generated method stub

    }

    @Override
    public void middleDownloadFail() {
        // TODO Auto-generated method stub

    }

}

public class Middle extends LinearLayout implements
        IndustryCollectionDetailsListener {

    public Middle(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

    public Middle(Context context, AttributeSet attrs) {
        super(context, attrs);

    }

    public Middle(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);

    }

    @Override
    public void featureTopDownloadSuccess() {
        // TODO Auto-generated method stub

    }

    @Override
    public void featureTopDownloadFail() {
        // TODO Auto-generated method stub

    }

    @Override
    public void featureBottomDownloadSuccess() {
        // TODO Auto-generated method stub

    }

    @Override
    public void featureBottomDownloadFail() {
        // TODO Auto-generated method stub

    }

    @Override
    public void middleDownloadSuccess() {
        // TODO Auto-generated method stub

    }

    @Override
    public void middleDownloadFail() {
        // TODO Auto-generated method stub

    }

}

} Я не знаю об этой ошибке. Есть ли какое-либо свойство, которое мне не хватает в xml? Я новичок в разработке Android. Заранее спасибо.


person unflagged.destination    schedule 28.11.2014    source источник
comment
-_- показать трассировку стека и показать строку # 28   -  person Suvitruf - Andrei Apanasik    schedule 28.11.2014
comment
в XML com.xyz.Xyz.Middle - ›ваш пакет, точка, класс, точка, внутренний класс?   -  person snachmsm    schedule 28.11.2014
comment
Трассировка стека - 11-28 16: 28: 42.604: E / AndroidRuntime (6324): java.lang.RuntimeException: невозможно запустить действие ComponentInfo: android.view.InflateException: строка двоичного файла XML # 28: ошибка расширения класса com.xyz .FeatureTop, а строка 28 - ‹com.xyz.FeatureTop   -  person unflagged.destination    schedule 28.11.2014


Ответы (3)


Вместо

<com.xyz.Middle
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=".35" >
{...}
</com.xyz.Middle>

попробуйте это (это синтаксис для внутренних классов), если ваш класс Xyz находится в пакете com.xyz:

<com.xyz.Xyz$Middle
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight=".35" >
{...}
</com.xyz.Middle>

И проделайте то же самое для com.xyz.FeatureBottom и т. Д.

person Suvitruf - Andrei Apanasik    schedule 28.11.2014
comment
после добавления знака $ он удаляет внутренний класс и делает xyz свойством. ‹Com.xyz xmlns: android = schemas.android.com/apk/res/android android: layout_width = match_parent android: layout_height = 0dp android: layout_weight = .35 FeatureTop = ›и я получаю ту же ошибку. - person unflagged.destination; 28.11.2014

Я заметил, что если я сохраню класс, то он будет работать нормально. Но если его внутренний класс не работает и дает мне эту ошибку. Почему так происходит, я не знаю. кто-нибудь знает, как я могу это сделать с внутренним классом?

person unflagged.destination    schedule 28.11.2014