5

私は Android でいくつかの作業を行っていて、それで Retrolambda をテストしたいと考えていました。しかし、残念ながら私は問題に遭遇しました。

Consumer をパラメーターとして受け取る Dialog クラスがあります。

public class AuthDialog extends Dialog {

    public static final String SERVER_URL = "http://cohhgas.ddns.net/auth";
    private Consumer<UserCredentials> onSuccess;

    public AuthDialog(Context context, Consumer<UserCredentials> onSuccess) {
        super(context);
        this.onSuccess = onSuccess;
    }
}

そして、私はそれを使用するアクティビティを持っています:

public class MainActivity extends AppCompatActivity {

    public static final String CREDENTIALS = "sharedPrefsCredentials";

    GiveAway giveAway;
    SharedPreferences sharedpreferences;

    public MainActivity() {
        EventBus.getDefault().register(this);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final AuthDialog auth_dialog;
        auth_dialog = new AuthDialog(MainActivity.this, userCredentials -> Log.d("cool", "works"));
        auth_dialog.show();

        TextView textView = new TextView(MainActivity.this);
        textView.setOnClickListener((view) -> {

        });
    }
}

しかし、AuthDialog を開始する行で例外がスローされます。ログは次のとおりです。

Process: io.github.hajto.cohhcarnagegiveawayclient, PID: 3687
                  java.lang.NoClassDefFoundError: io.github.hajto.cohhcarnagegiveawayclient.activites.MainActivity$$Lambda$1
                      at io.github.hajto.cohhcarnagegiveawayclient.activites.MainActivity.onCreate(MainActivity.java:56)
                      at android.app.Activity.performCreate(Activity.java:6013)
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2359)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2466)
                      at android.app.ActivityThread.access$1200(ActivityThread.java:152)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1341)
                      at android.os.Handler.dispatchMessage(Handler.java:102)
                      at android.os.Looper.loop(Looper.java:135)
                      at android.app.ActivityThread.main(ActivityThread.java:5538)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at java.lang.reflect.Method.invoke(Method.java:372)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

最も興味深いのは、その行を削除すると、onClick リスナーは次のラムダと議論しなくなります。

4

0 に答える 0