Here's what I got working and when it failed .... it was just
the basic 'hello world' kind of stuff:
Worked:
final KnowledgeBuilder kbuilder =
KnowledgeBuilderFactory.newKnowledgeBuilder();
Died:
// this will parse and compile in one step
kbuilder.add(ResourceFactory.newClassPathResource("HelloWorld.drl",
DroolsTest.class), ResourceType.DRL);
LogCat:
01-02 13:13:17.684: E/AndroidRuntime(537):
java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.versaggi.android.droolsandroidtest/com.versaggi.android.droolsandroidtest.DroolsAndroidTestActivity}:
java.lang.NullPointerException
I've seen NPEs thrown up from down in the Drools gears when
the DRL resource could not be found. Make sure that
ResourceFactory.newClassPathResource("HelloWorld.drl",
DroolsTest.class)
is != null.
I
had to re-compile the CompositeClassLoader.java file and then
reinsert it into the drools-api-5.1.0.M2.jar file to get past
this issue:
"A small modification is needed in org.drools.util.CompositeClassLoader.
Apparently, the Android JVM doesn't allow null as the parent
classloader so I changed that to super(CompositeClassLoader.class.getClassLoader())
in the constructor, and that works fine."
Yes, that's come up in other Java environments as well, and
IIRC been fixed on the way towards 5.2.0. )There ought to be a
closed JIRA, if s.o. cares to look it up.)