ClassCastException Android Eclipse - PullRequest
       1

ClassCastException Android Eclipse

1 голос
/ 03 февраля 2011

При попытке запустить приложение я получаю следующие ошибки: Подскажите, пожалуйста, где я ошибаюсь :) О, а также, как я могу узнать, в какой строке в моем коде происходит ошибка? спасибо

    02-03 08:01:31.159: ERROR/AndroidRuntime(281): FATAL EXCEPTION: main
02-03 08:01:31.159: ERROR/AndroidRuntime(281): java.lang.RuntimeException: Unable to instantiate application com.android.demo.notepad2.NoteEdit: java.lang.ClassCastException: com.android.demo.notepad2.NoteEdit
02-03 08:01:31.159: ERROR/AndroidRuntime(281):     at android.app.ActivityThread$PackageInfo.makeApplication(ActivityThread.java:649)
02-03 08:01:31.159: ERROR/AndroidRuntime(281):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4232)
02-03 08:01:31.159: ERROR/AndroidRuntime(281):     at android.app.ActivityThread.access$3000(ActivityThread.java:125)
02-03 08:01:31.159: ERROR/AndroidRuntime(281):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2071)
02-03 08:01:31.159: ERROR/AndroidRuntime(281):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-03 08:01:31.159: ERROR/AndroidRuntime(281):     at android.os.Looper.loop(Looper.java:123)
02-03 08:01:31.159: ERROR/AndroidRuntime(281):     at android.app.ActivityThread.main(ActivityThread.java:4627)
02-03 08:01:31.159: ERROR/AndroidRuntime(281):     at java.lang.reflect.Method.invokeNative(Native Method)
02-03 08:01:31.159: ERROR/AndroidRuntime(281):     at java.lang.reflect.Method.invoke(Method.java:521)
02-03 08:01:31.159: ERROR/AndroidRuntime(281):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-03 08:01:31.159: ERROR/AndroidRuntime(281):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-03 08:01:31.159: ERROR/AndroidRuntime(281):     at dalvik.system.NativeStart.main(Native Method)
02-03 08:01:31.159: ERROR/AndroidRuntime(281): Caused by: java.lang.ClassCastException: com.android.demo.notepad2.NoteEdit
02-03 08:01:31.159: ERROR/AndroidRuntime(281):     at android.app.Instrumentation.newApplication(Instrumentation.java:957)
02-03 08:01:31.159: ERROR/AndroidRuntime(281):     at android.app.Instrumentation.newApplication(Instrumentation.java:942)
02-03 08:01:31.159: ERROR/AndroidRuntime(281):     at android.app.ActivityThread$PackageInfo.makeApplication(ActivityThread.java:644)
02-03 08:01:31.159: ERROR/AndroidRuntime(281):     ... 11 more

Это мой класс NoteEdit:

package com.android.demo.notepad2;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class NoteEdit extends Activity {
    EditText mTitleText;
    EditText mBodyText;
    Long mRowId;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.note_edit);
        setTitle(R.string.edit_note);
        mTitleText = (EditText) findViewById(R.id.title);
        mBodyText = (EditText) findViewById(R.id.body);
        Button confirmButton = (Button) findViewById(R.id.confirm);
        mRowId = null;
        Bundle extras = getIntent().getExtras();
        if (extras != null) {
            String title = extras.getString(NotesDbAdapter.KEY_TITLE);
            String body = extras.getString(NotesDbAdapter.KEY_BODY);
            mRowId = extras.getLong(NotesDbAdapter.KEY_ROWID);

            if (title != null) {
                mTitleText.setText(title);
            }
            if (body != null) {
                mBodyText.setText(body);
            }
        }

        confirmButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                Bundle bundle = new Bundle();
                bundle.putString(NotesDbAdapter.KEY_TITLE, mTitleText.getText()
                        .toString());
                bundle.putString(NotesDbAdapter.KEY_BODY, mBodyText.getText()
                        .toString());
                if (mRowId != null) {
                    bundle.putLong(NotesDbAdapter.KEY_ROWID, mRowId);
                }
                Intent mIntent = new Intent();
                mIntent.putExtras(bundle);
                setResult(RESULT_OK, mIntent);
                finish();
            }
        });

    }
}

Это макет класса NoteEdit:

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

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/title" />
        <EditText
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
    </LinearLayout>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/body" />
    <EditText
        android:id="@+id/body"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:scrollbars="vertical" />

    <Button
        android:id="@+id/confirm"
        android:text="@string/confirm"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

Ответы [ 2 ]

0 голосов
/ 20 марта 2015

Если вы не можете найти ошибку в своем коде, иногда это происходит в затмении после того, как вы сделали серьезное редактирование.Все, что вам нужно сделать, это открыть папку gen вашего проекта.Удалите файл R.java.Очистите проект, и вы должны быть в порядке.

0 голосов
/ 03 февраля 2011

Я думаю, вам нужно поместить что-то подобное в манифест (если оно еще не присутствует в манифесте)

 <activity android:name=".NoteEdit"
              android:label="@string/app_name"
          >
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

Кажется, в вашем коде нет ошибки, поэтому, возможно, эта проблема решит вашу проблему.

...