Реализация JGraphT в Android

Я внедряю JGraphT в приложение для Android.

Я добавил все необходимое в Gradle, и после этого я хотел добавить несколько примеров в код:

        SimpleDirectedWeightedGraph<String, DefaultWeightedEdge> topoGraph =
                new SimpleDirectedWeightedGraph<String, DefaultWeightedEdge>(DefaultWeightedEdge.class);
        topoGraph.addVertex("Rysy");
        topoGraph.addVertex("Giewont");

        DefaultWeightedEdge e1 = topoGraph.addEdge("Rysy", "Giewont");
        DefaultWeightedEdge e2 = topoGraph.addEdge("Giewont", "Rysy");

        topoGraph.setEdgeWeight(e1, 200);
        topoGraph.setEdgeWeight(e2, 400);

Пока я хочу запустить свое приложение, я получаю сообщение об ошибке:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.mountaintraveller, PID: 9857
    java.lang.BootstrapMethodError: Exception from call site #226 bootstrap method
        at org.jgrapht.util.SupplierUtil.createSupplier(SupplierUtil.java:60)
        at org.jgrapht.util.SupplierUtil.<clinit>(SupplierUtil.java:38)
        at org.jgrapht.util.SupplierUtil.createSupplier(SupplierUtil.java:60)
        at org.jgrapht.graph.SimpleDirectedWeightedGraph.<init>(SimpleDirectedWeightedGraph.java:45)
        at com.example.mountaintraveller.MainActivity.onCreate(MainActivity.java:84)
        at android.app.Activity.performCreate(Activity.java:7136)
        at android.app.Activity.performCreate(Activity.java:7127)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: java.lang.ClassCastException: Bootstrap method returned null
        at org.jgrapht.util.SupplierUtil.createSupplier(SupplierUtil.java:60) 
        at org.jgrapht.util.SupplierUtil.<clinit>(SupplierUtil.java:38) 
        at org.jgrapht.util.SupplierUtil.createSupplier(SupplierUtil.java:60) 
        at org.jgrapht.graph.SimpleDirectedWeightedGraph.<init>(SimpleDirectedWeightedGraph.java:45) 
        at com.example.mountaintraveller.MainActivity.onCreate(MainActivity.java:84) 
        at android.app.Activity.performCreate(Activity.java:7136) 
        at android.app.Activity.performCreate(Activity.java:7127) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:193) 
        at android.app.ActivityThread.main(ActivityThread.java:6669) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 

где строка: at org.jgrapht.graph.SimpleDirectedWeightedGraph.(SimpleDirectedWeightedGraph.java:45) относится к задаче Graph.

Я не могу понять, что означает Exception from call site # 226 bootstrap method.


person MaciejB    schedule 26.12.2019    source источник


Ответы (1)


Я нашел решение этой ошибки. Все что нужно:

Откройте свой файл Gradle и вставьте:

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

внутри опций android {...}.

person MaciejB    schedule 27.12.2019