2

私はアンドロイドが初めてです。http://www.youtube.com/watch?v=1JyC_xv20yEのチュートリアルに従い
ました プログラムにエラーはありません。しかし、エミュレーターは「アプリケーションが予期せず停止しました」 と表示します

ログファイルとして

04-11 19:50:14.295: D/AndroidRuntime(338): Shutting down VM
04-11 19:50:14.295: W/dalvikvm(338): threadid=1: thread exiting with uncaught exception (group=0x40015560)
04-11 19:50:14.315: E/AndroidRuntime(338): FATAL EXCEPTION: main
04-11 19:50:14.315: E/AndroidRuntime(338): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sql/com.sql.SQLiteExample}: java.lang.ClassCastException: com.sql.SQLiteExample
04-11 19:50:14.315: E/AndroidRuntime(338):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
04-11 19:50:14.315: E/AndroidRuntime(338):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
04-11 19:50:14.315: E/AndroidRuntime(338):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
04-11 19:50:14.315: E/AndroidRuntime(338):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
04-11 19:50:14.315: E/AndroidRuntime(338):  at android.os.Handler.dispatchMessage(Handler.java:99)
04-11 19:50:14.315: E/AndroidRuntime(338):  at android.os.Looper.loop(Looper.java:123)
04-11 19:50:14.315: E/AndroidRuntime(338):  at android.app.ActivityThread.main(ActivityThread.java:3683)
04-11 19:50:14.315: E/AndroidRuntime(338):  at java.lang.reflect.Method.invokeNative(Native Method)
04-11 19:50:14.315: E/AndroidRuntime(338):  at java.lang.reflect.Method.invoke(Method.java:507)
04-11 19:50:14.315: E/AndroidRuntime(338):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-11 19:50:14.315: E/AndroidRuntime(338):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-11 19:50:14.315: E/AndroidRuntime(338):  at dalvik.system.NativeStart.main(Native Method)
04-11 19:50:14.315: E/AndroidRuntime(338):  at com.sql.SQLiteExample.onCreate(SQLiteExample.java:28)
04-11 19:50:14.315: E/AndroidRuntime(338):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-11 19:50:14.315: E/AndroidRuntime(338):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
04-11 19:50:14.315: E/AndroidRuntime(338):  ... 11 more
04-11 19:55:14.435: I/Process(338): Sending signal. PID: 338 SIG: 9
04-11 20:02:38.005: W/dalvikvm(367): threadid=1: thread exiting with uncaught exception (group=0x40015560)
04-11 20:02:38.045: E/AndroidRuntime(367): FATAL EXCEPTION: main
04-11 20:02:38.045: E/AndroidRuntime(367): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sql/com.sql.SQLiteExample}: java.lang.ClassCastException: com.sql.SQLiteExample
04-11 20:02:38.045: E/AndroidRuntime(367):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
04-11 20:02:38.045: E/AndroidRuntime(367):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
04-11 20:02:38.045: E/AndroidRuntime(367):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
04-11 20:02:38.045: E/AndroidRuntime(367):  at android.os.Looper.loop(Looper.java:123)
04-11 20:02:38.045: E/AndroidRuntime(367):  at android.app.ActivityThread.main(ActivityThread.java:3683)
04-11 20:02:38.045: E/AndroidRuntime(367):  at java.lang.reflect.Method.invokeNative(Native Method)
04-11 20:02:38.045: E/AndroidRuntime(367):  at java.lang.reflect.Method.invoke(Method.java:507)
04-11 20:02:38.045: E/AndroidRuntime(367):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-11 20:02:38.045: E/AndroidRuntime(367):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-11 20:02:38.045: E/AndroidRuntime(367):  at dalvik.system.NativeStart.main(Native Method)
04-11 20:02:38.045: E/AndroidRuntime(367): Caused by: java.lang.ClassCastException: com.sql.SQLiteExample
04-11 20:02:38.045: E/AndroidRuntime(367):  at com.sql.SQLiteExample.onCreate(SQLiteExample.java:28)
04-11 20:02:38.045: E/AndroidRuntime(367):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-11 20:02:38.045: E/AndroidRuntime(367):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
04-11 20:02:38.045: E/AndroidRuntime(367):  ... 11 more
04-11 20:07:38.165: I/Process(367): Sending signal. PID: 367 SIG: 9

SQLiteexample.javaとして

package com.sql;

import android.app.Activity;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class SQLiteExample extends Activity implements OnClickListener{
    /** Called when the activity is first created. */
    Button sqlUpdate,sqlView;
    EditText sqllocation,sqllongi,sqllati;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sqliteexample);
        sqlUpdate = (Button)findViewById(R.id.bsqlupdate);
        sqlView = (Button)findViewById(R.id.bsqlopenview);
        sqllongi = (EditText)findViewById(R.id.longi);
        sqllati = (EditText)findViewById(R.id.lati);
        sqllocation = (EditText)findViewById(R.id.location1);
        sqlView.setOnClickListener((android.view.View.OnClickListener) this);
        sqlUpdate.setOnClickListener((android.view.View.OnClickListener) this);

    }

    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        switch (arg0.getId())
        {
        case R.id.bsqlupdate:
            boolean wrk=true;
            try{
            String location = sqllocation.getText().toString();
            String longi = sqllongi.getText().toString();
            String lati = sqllongi.getText().toString();
            Cornte entry = new Cornte(this);
            entry.open();
            entry.createEntry(location , longi, lati);

            entry.close();
            }catch (Exception e){
                wrk= false;
                String error=e.toString();
                Dialog d=new Dialog(this);
                d.setTitle("NO!!!");
                TextView tv =new TextView(this);
                tv.setText(error);
                d.setContentView(tv);
                d.show(); 

            }finally{
                if(wrk)
                {
                    Dialog d=new Dialog(this);
                    d.setTitle("YUP!!!");
                    TextView tv =new TextView(this);
                    tv.setText("SUCCESS");
                    d.setContentView(tv);
                    d.show();
                }
            }
            break;
        case R.id.bsqlopenview:
            Intent i =new Intent("com.sql.SQLVIEW");
            startActivity(i);

            break;
        }
    }

    @Override
    public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub

    }
}
4

2 に答える 2

0

私は解決策を得ました..エラーはインポートandroid.content.DialogInterface.OnClickListenerの間違ったインポートが原因です; View型のView.OnClickListenersetOnClickListener(View.OnClickListener)をインポートする代わりに 、引数(SequencerActivity)には適用できませんback.setOnClickListener(this);

于 2012-04-12T04:05:14.860 に答える
0

エラーは次のとおりです。

sqlView.setOnClickListener((android.view.View.OnClickListener) this);

logcat で確認できます。

04-11 20:02:38.045: E/AndroidRuntime(367):  at com.sql.SQLiteExample.onCreate(SQLiteExample.java:28)

説明します。まず、logcat の使用方法を学習してみてください。ほとんどの場合、エラーの一番下から始めて、名前空間 (この場合は com.sql.SQLiteExample) を含む行を検索するだけです。これで、どのメソッドが作成されたかを確認できます。この例ではアプリがクラッシュします:「onCreate」ですが、最も重要なのは、エラーが発生したファイルと行番号です!

ClassCastException は、オブジェクトをそうではないオブジェクトに入れたいことを意味します... 学校の例では、いくつかの ChildObjects 'Dogg' & 'Cat' を持つ BaseObjects 'Animal' を取得しましたが、現在、次のことを実行しようとしています:

Apple apple = giveMeThatApple();
Animal a = apple;

その「リンゴ」はクラス「アニマル」とは何の関係もないので、それはうまくいきません...理解していただければ幸いです...

于 2012-04-10T07:41:04.550 に答える