0

アクティビティ vTestSession を開始できないというエラーを取得します。これは、AndroidManifest.xml にないことが原因である可能性があります。しかし、それはそこにあります。

LogCat エラー

08-12 18:39:14.871: E/AndroidRuntime(987): FATAL EXCEPTION: main
08-12 18:39:14.871: E/AndroidRuntime(987): java.lang.IllegalStateException: Could not execute method of the activity
08-12 18:39:14.871: E/AndroidRuntime(987):  at android.view.View$1.onClick(View.java:3591)
08-12 18:39:14.871: E/AndroidRuntime(987):  at android.view.View.performClick(View.java:4084)
08-12 18:39:14.871: E/AndroidRuntime(987):  at android.view.View$PerformClick.run(View.java:16966)
08-12 18:39:14.871: E/AndroidRuntime(987):  at android.os.Handler.handleCallback(Handler.java:615)
08-12 18:39:14.871: E/AndroidRuntime(987):  at android.os.Handler.dispatchMessage(Handler.java:92)
08-12 18:39:14.871: E/AndroidRuntime(987):  at android.os.Looper.loop(Looper.java:137)
08-12 18:39:14.871: E/AndroidRuntime(987):  at android.app.ActivityThread.main(ActivityThread.java:4745)
08-12 18:39:14.871: E/AndroidRuntime(987):  at java.lang.reflect.Method.invokeNative(Native Method)
08-12 18:39:14.871: E/AndroidRuntime(987):  at java.lang.reflect.Method.invoke(Method.java:511)
08-12 18:39:14.871: E/AndroidRuntime(987):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
08-12 18:39:14.871: E/AndroidRuntime(987):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-12 18:39:14.871: E/AndroidRuntime(987):  at dalvik.system.NativeStart.main(Native Method)
08-12 18:39:14.871: E/AndroidRuntime(987): Caused by: java.lang.reflect.InvocationTargetException
08-12 18:39:14.871: E/AndroidRuntime(987):  at java.lang.reflect.Method.invokeNative(Native Method)
08-12 18:39:14.871: E/AndroidRuntime(987):  at java.lang.reflect.Method.invoke(Method.java:511)
08-12 18:39:14.871: E/AndroidRuntime(987):  at android.view.View$1.onClick(View.java:3586)
08-12 18:39:14.871: E/AndroidRuntime(987):  ... 11 more
08-12 18:39:14.871: E/AndroidRuntime(987): Caused by: java.lang.NullPointerException
08-12 18:39:14.871: E/AndroidRuntime(987):  at com.kids.playground.math.vTestSession.getcurrentquestion(vTestSession.java:312)
08-12 18:39:14.871: E/AndroidRuntime(987):  at com.kids.playground.math.vTestSession.setuparun(vTestSession.java:132)
08-12 18:39:14.871: E/AndroidRuntime(987):  at com.kids.playground.math.vTestSession.ans1clicked(vTestSession.java:342)
08-12 18:39:14.871: E/AndroidRuntime(987):  ... 14 more

パッケージcom.kids.playgroundにボタンのあるクラスがあります。ボタンをクリックすると、パッケージ com.kids.playground.math で実行されます

ここに画像の説明を入力

私の AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.kids.playground"

    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="10" />

      <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <application 
        android:icon="@drawable/icon" 
        android:label="@string/app_name" >
         <activity
            android:label="@string/app_name"
            android:name=".AppActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>


           <activity android:name="com.kids.playground.math.DMG"
                  android:label="@string/app_name">
        </activity>

        <activity android:name="com.kids.playground.math.vSplash"
                  android:theme="@style/Theme.Transparent">
        </activity>

        <activity android:name="com.kids.playground.math.vTestSession"
                  android:label="@string/app_name">
        </activity>

        <activity android:name="com.kids.playground.math.vStats"
                  android:label="@string/app_name">
        </activity>

        <activity android:name="com.kids.playground.math.vHistoryStats"
                  android:label="@string/app_name">
        </activity>

        <activity android:name="com.kids.playground.math.vEasystats"
                  android:label="@string/app_name">
        </activity>

        <activity android:name="com.kids.playground.math.vNormalstats"
                  android:label="@string/app_name">
        </activity>

        <activity android:name="com.kids.playground.math.vHardstats"
                  android:label="@string/app_name">
        </activity>


        <receiver android:name="com.kids.playground.math.MyIntentReceiver" android:enabled="true">
            <intent-filter>
                <action android:name="com.kids.playground.math.PrepareOperationSet" />
            </intent-filter>
        </receiver>


        </application>

</manifest>

編集 - 行 306-317

 @SuppressWarnings("unchecked")
    private ArrayList<String> getcurrentquestion() {
        ArrayList<String> retval = new ArrayList<String>();
        Random r = new Random();

        //Check if the current index is not over size of question set and maximum number of questions then return null
        if( vTestSession.currentindex > this.numquestions-1 || vTestSession.currentindex > this.questions.size()-1) { return null; }

        int qindex = r.nextInt(this.questions.size());
        retval = (ArrayList<String>) this.questions.get(qindex);
        return retval;
    }

行 312 は、コメント「//Check if the current index ...」の下の if ステートメントです。

4

2 に答える 2

1

if 条件で使用されるすべての変数の値をデバッグして確認する必要があります。ここでは、すべての変数に null 値ではなく期待値が含まれていることを確認する必要があります。同じことをフォローすることができます。

  1. 312行目にブレークポイントを置く
  2. アプリケーションをデバッグし、ブレークポイントを起動させます
  3. 変数にマウスポインタを合わせるだけで、変数
    OR の値が得られます
  4. 変数名を右クリックし、[検査] を選択します

これがお役に立てば幸いです...

于 2012-08-13T05:01:14.640 に答える
0

デバッグして、この行のすべての変数の値を教えてください。それらの 1 つ (または複数) が null になります。理由がわかれば、問題は解決します。

以前のコードでそれらのいずれも初期化していない可能性が非常に高いです。

于 2012-08-12T20:04:06.710 に答える