Je travaille sur la mise en œuvre Drools dans Android, coincé dans un problèmeDrools Android Intégration
java.lang.RuntimeException: Impossible de démarrer l'activité ComposantInfo {com.decurtis.drooldemo/com.decurtis.drooldemo.MainActivity }: java.lang.RuntimeException: Impossible d'instancier l'objet pour la classe 'org.drools.android.DexPackageClassLoader' avec le constructeur public org.drools.android.DexPackageClassLoader (org.drools.core.rule.JavaDialectRuntimeData, java.lang.ClassLoader) at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2646) à l'adresse android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2707) at android.app.ActivityThread.-wrap12 (ActivityThread.java) à android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1460) à android.os.Handler.dispatchMessage (Handler.java:102) à android.os.Looper.loop (Looper.java:154) à android.app.ActivityThread.main (ActivityThread.java:6077) à java.lang.reflect.Method.invoke (méthode native) à com. android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:756) Causé par: java.lang.RuntimeException: Impossible de instancier un objet pour cla ss 'org.drools.android.DexPackageClassLoader' avec le constructeur public org.drools.android.DexPackageClassLoader (org.drools.core.rule.JavaDialectRuntimeData, java.lang.ClassLoader) à org.drools.core.util.ClassUtils.instantiateObject (ClassUtils.java:272) à org.drools.core.rule.JavaDialectRuntimeData.makeClassLoader (JavaDialectRuntimeData.java:618) à org.drools.core.rule.JavaDialectRuntimeData.onAdd (JavaDialectRuntimeData.java:243) à org .drools.compiler.rule.builder.dialect.java.JavaDialect. (JavaDialect.java:187) à org.drools.compiler.rule.builder.dialect.java.JavaDialectConfiguration.newDialect (JavaDialectConfiguration.java:91) à org.drools.compiler.builder.impl.KnowledgeBuilderConfi gurationImpl.buildDialectRegistry (KnowledgeBuilderConfigurationImpl.java:392) à org.drools.compiler.compiler.PackageRegistry. (PackageRegistry.java:55) à org.drools.compiler.builder.impl.KnowledgeBuilderImpl.newPackage (KnowledgeBuilderImpl.java:1571) à org.drools.compiler.builder.impl.KnowledgeBuilderImpl.initPackageRegistry (KnowledgeBuilderImpl.java:1044) à org.drools.compiler.builder.impl.KnowledgeBuilderImpl.createPackageRegistry (KnowledgeBuilderImpl.java:1015) à org.drools .compiler.builder.impl.CompositeKnowledgeBuilderImpl.initPackageRegistries (CompositeKnowledgeBuilderImpl.java:297) à org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.buildPackages (CompositeKnowl edgeBuilderImpl.java:116) à org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.build (CompositeKnowledgeBuilderImpl.java:105) à org.drools.compiler.kie.builder.impl.AbstractKieModule.buildKnowledgePackages (AbstractKieModule.java: 244) à org.drools.compiler.kie.builder.impl.AbstractKieProject.verify (AbstractKieProject.java:64) à org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildKieProject (KieBuilderImpl.java:230) à org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll (KieBuilderImpl.java:198) à com.decurtis.drooldemo.MainActivity.kieExecute63 (MainActivity.java:81) à com.decurtis.drooldemo. Activité principale.onCreate (MainActivity.java:41) at android.app.Activity.performCreate (Activity.java:6662) à l'adresse android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1118) at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2599) at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2707) à l'adresse android.app.ActivityThread.-wrap12 (ActivityThread.java) at android.app.ActivityThread $ H.handleMessage (ActivityThread .java: 1460) à android.os.Handler.dispatchMessage (Handler.java:102) à android.os.Looper.loop (Looper.java:154) à android.app.ActivityThread.main (ActivityThread.java:6077) à java.lang.reflect.Method.invoke (méthode native) à com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java : 866) à com.android.internal.os.ZygoteInit.main (ZygoteInit.java:756) causés par: java.lang.reflect.InvocationTargetException à java.lang.reflect.Constructor.newInstance0 (Méthode natif) à java.lang.reflect.Constructor.newInstance (Constructor.java:430) à org.drools.core.util.ClassUtils.instantiateObject (ClassUtils.java:270) à org.drools.core.rule.JavaDialectRuntimeData.m akeClassLoader (JavaDialectRuntimeData.java:618) à org.drools.core.rule.JavaDialectRuntimeData.onAdd (JavaDialectRuntimeData.java:243) à org.drools.compiler.rule.builder.dialect.java.JavaDialect. (JavaDialect.java : 187) à org.drools.compiler.rule.builder.dialect.java.JavaDialectConfiguration.newDialect (JavaDialectConfiguration.java:91) à org.drools.compiler.builder.impl.KnowledgeBuilderConfigurationImpl.buildDialectRegistry (KnowledgeBuilderConfigurationImpl.java:392) à org.drools.compiler.compiler.PackageRegistry. (PackageRegistry.java:55) à org.drools.compiler.builder.impl.KnowledgeBuilderImpl.newPackage (KnowledgeBuilderImpl.java:1571) à org.drools.compiler.builder.impl.KnowledgeBuilderImpl.initPackageRegistry (KnowledgeBuilderImpl.java:1044) à org.drools.compiler.builder.impl.KnowledgeBuilderImpl.createPackageRegistry (KnowledgeBuilderImpl.java:1015) à org.drools.compiler .builder.impl.CompositeKnowledgeBuilderImpl.initPackageRegistries (CompositeKnowledgeBuilderImpl.java:297) à org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.buildPackages (CompositeKnowledgeBuilderImpl.java:116) à org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl .build (CompositeKnowledgeBuilderImpl.java:105) sur org.drools.compiler.kie.builder.impl.AbstractKieModule.buildKnowledgePackages (AbstractKieModule.java:244) à org.drools.compiler.kie.builder.impl.AbstractKieProject.verify (AbstractKieProject.java:64) à org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildKieProject (KieBuilderImpl.java:230) à org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll (KieBuilderImpl.java:198) à com.decurtis.drooldemo.MainActivity.kieExecute63 (MainActivity.java:81) à com.decurtis.drooldemo.MainActivity. onCreate (MainActivity.java:41) at android.app.Activity.performCreate (Activity.java:6662) à l'adresse android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1118) at android.app.ActivityThread.performLaunchAc tivity (ActivityThread.java: 2599) à android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2707) à android.app.ActivityThread.-wrap12 (ActivityThread.java) at android.app.ActivityThread $ H.handleMessage (ActivityThread.java : 1460) à android.os.Handler.dispatchMessage (Handler.java:102) à android.os.Looper.loop (Looper.java:154) à android.app.ActivityThread.main (ActivityThread.java:6077) à java.lang.reflect.Method.invoke (méthode native) à com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:866) à com.andr oid.internal.os.ZygoteInit.main (ZygoteInit.java:756) Causé par: java.lang.NullPointerException: Tentative d'invocation de la méthode virtuelle 'java.lang.String java.io.File.getAbsolutePath()' sur un null référence d'objet à org.drools.android.MultiDexClassLoader. (MultiDexClassLoader.java:70) 07-27 04: 43: 48.294 16631-16631/com.decurtis.drooldemo E/AndroidRuntime: à org.drools.android.DexPackageClassLoader. (DexPackageClassLoader.java:44)
Code: J'utilise la version de drools 6.5.0 et l'erreur ci-dessus.
KieServices ks = KieServices.Factory.get();
KieRepository kr = ks.getRepository();
KieFileSystem kfs = ks.newKieFileSystem();
kfs.write(ResourceFactory.newClassPathResource("rules/Fire.drl", Fire.class));
KieBuilder kb = ks.newKieBuilder(kfs);
kb.buildAll(); // kieModule is automatically deployed to KieRepository if successfully built.
if (kb.getResults().hasMessages(Message.Level.ERROR)) {
throw new RuntimeException("Build Errors:\n" + kb.getResults().toString());
}
KieContainer kContainer = ks.newKieContainer(kr.getDefaultReleaseId());
KieSession kSession = kContainer.newKieSession();
System.out.println("Fire All Rules...");
kSession.fireAllRules();
kSession.dispose();
Avez-vous rencontré cette erreur, svp aidez-moi à sortir?