Сносит интеграцию с Android & ks.getKieClasspathContainer (), выбрасывая java.lang.NullPointerException - PullRequest
0 голосов
/ 30 марта 2019

Я пытался использовать Drools и Android Studio для разработки игрового приложения для судоку. Но я столкнулся с проблемой интеграции Drools в приложение Android. Я добавил файлы jar.

implementation 'org.drools:drools-core:7.19.0.Final'
implementation files('libs/drools-android-7.19.0.Final.jar')
implementation files('libs/drools-compiler-7.19.0.Final.jar')

Я создал тестовый класс:

try {
            KieServices ks = KieServices.Factory.get();
            KieContainer kc = ks.getKieClasspathContainer();
            KieSession kSession = kc.newKieSession("SudokuKS");

            kSession.fireAllRules();
            kSession.dispose();
        } catch (Throwable t) {
            t.printStackTrace();
        } 

Однако, когда я запустил приложение, проблема произошла в следующих строках:

KieContainer kc = ks.getKieClasspathContainer();

Ошибка:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.moxa.mysudoku, PID: 14267
    java.lang.NullPointerException: Attempt to invoke interface method 'org.kie.api.runtime.KieContainer org.kie.api.KieServices.getKieClasspathContainer()' on a null object reference
        at com.moxa.sudoku.RuleEngineTest.startEngine(RuleEngineTest.java:15)
        at com.moxa.sudoku.SudokuFunctions.check(SudokuFunctions.java:33)
        at com.moxa.sudoku.SudokuFunctions.getFunction(SudokuFunctions.java:21)
        at com.moxa.sudoku.view.functionsgrid.FunctionButton.onClick(FunctionButton.java:25)
        at android.view.View.performClick(View.java:4780)
        at android.view.View$PerformClick.run(View.java:19866)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5254)
        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:903)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

Может кто-нибудь помочь мне решить эту проблему?

...