3

このエラーが発生しています:

Exception in thread "Thread-0" java.lang.VerifyError: Constructor must call super() or this() before return in method JGame.Util.KeyboardMap.<init>()V at offset 0
        at JGame.Room.Room.keyboardEventTests(Room.java:81)
        at JGame.Room.Room.run(Room.java:54)
        at java.lang.Thread.run(Thread.java:722)

アプリケーションが読み込まれると、すぐにこのメソッドが呼び出されます (KeyboardMap.map は空の HashMap です)。

メソッドは次のとおりです (54 行目でこのメソッドを呼び出しますthis.keyboardEventTests();)。

protected void keyboardEventTests(){
    for(Map.Entry ap : KeyboardMap.map.entrySet()){ // Line 81
        Mapping mp = (Mapping)ap.getValue();
        if(mp.doing){
            mp.run();
        }
    }
}

そして、これが KeyboardMap クラスです。

package JGame.Util;

import java.util.HashMap;
import java.util.Map;

public class KeyboardMap{

    public static Map<String, Mapping> map = new HashMap<>();

    public static void set(String key, Boolean value, Runnable run){
        Mapping mp = new Mapping();
        mp.doing = value;
        mp.run = run;
        KeyboardMap.map.put(key, mp);
    }

    public static Mapping get(String key){
        return KeyboardMap.map.get(key);
    }
}

このエラーが発生するのはなぜですか?どうすれば解消できますか?

4

4 に答える 4

0

私の場合、buildTypes の下の build.gradle で minify をオフにすることが役に立ちました。

minifyEnabled false
于 2019-07-31T21:17:43.457 に答える
0

私は同じ問題を抱えていましたが、それは非常に奇妙なことが原因でした: NetBeans では、エディタの折り畳みを使用して長いコードを折り畳みます:

// <editor-fold desc="SOME DESCRIPTION">
  ...
  ...
// </editor-fold>

そして、そのような私の折り目の 1 つで、次のように折り目の始まりを書き忘れていたようです。

  ...
  ...
// </editor-fold>

これを修正すると、問題が解決しました。これは単なるコメントであり、NetBeans 用であるため、奇妙です

于 2015-06-08T14:29:31.340 に答える