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 をイベント実行しません。上記のコードでは、クラッシュの問題を引き起こしている行を特定するために、できるだけ多くの行を削除しました。