0

API24 および API25 (Android Nougat) を使用して Android デバイスで Runnable() を作成する際に問題が発生しました。要約すると、私はそのようなことをしようとしています:

MyAsyncTask myTask = new MyAsyncTask();
myTask.executeTask(new AsyncTaskListener() {
@Override
public void onTaskFinished(Object result) {
    try {
        Runnable r = new Runnable() {
            @Override
            public void run() {
                Log.i("Test", "Hello Runnable");
            }
        };
    }
    catch (Exception ex) {
        Log.i("Test", "Exception");
    }
}
});

24 より前の API ではすべて正常に動作しますが、API24 と 25 では例外をキャッチしています:

Attempt to invoke virtual method 'boolean java.lang.Class.isAnonymousClass()' on a null object reference

この問題を解決するためのアイデア、ヒント、提案はありますか?

編集

完全なコールスタック:

java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Class.isAnonymousClass()' on a null object reference
                  at hugo.weaving.internal.Hugo.asTag(Hugo.java:97)
                  at hugo.weaving.internal.Hugo.asTag(Hugo.java:98)
                  at hugo.weaving.internal.Hugo.enterMethod(Hugo.java:71)
                  at hugo.weaving.internal.Hugo.ajc$inlineAccessMethod$hugo_weaving_internal_Hugo$hugo_weaving_internal_Hugo$enterMethod(Hugo.java:1)
                  at hugo.weaving.internal.Hugo.logAndExecute(Hugo.java:36)
                  at my.app.MainFragmentActivity$9$1.<init>(MainFragmentActivity.java:918)
                  at my.app.MainFragmentActivity$9.onTaskFinished_aroundBody2(MainFragmentActivity.java:918)
                  at my.app.MainFragmentActivity$9$AjcClosure3.run(MainFragmentActivity.java:1)
                  at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149)
                  at hugo.weaving.internal.Hugo.logAndExecute(Hugo.java:39)
                  at my.app.MainFragmentActivity$9.onTaskFinished(MainFragmentActivity.java:914)
                  at my.app.module.net.WhoIsOnlineAsyncTask.onPostExecute(WhoIsOnlineAsyncTask.java:78)
                  at my.app.module.net.WhoIsOnlineAsyncTask.onPostExecute(WhoIsOnlineAsyncTask.java:19)
                  at android.os.AsyncTask.finish(AsyncTask.java:667)
                  at android.os.AsyncTask.-wrap1(AsyncTask.java)
                  at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:684)
                  at android.os.Handler.dispatchMessage(Handler.java:102)
                  at android.os.Looper.loop(Looper.java:154)
                  at android.app.ActivityThread.main(ActivityThread.java:6119)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

ライン:

 at my.app.MainFragmentActivity$9$1.<init>(MainFragmentActivity.java:918)

Runnable インスタンスを作成しているときに行を指しています。作成した Runnable をイベント実行しません。上記のコードでは、クラッシュの問題を引き起こしている行を特定するために、できるだけ多くの行を削除しました。

4

0 に答える 0