You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@groovy.apache.org by David Wood <da...@us.ibm.com> on 2016/03/31 02:55:50 UTC
Embedded groovy 2.4.6 on Android given NPE
Hi,
We are starting a new project in which we're trying to embed a groovy
script interpreter in an Android AsyncTask. When we try to instantiate
the app, somewhere along the line we get the stack trace below. Its
failing in loading one of the plugins at the following:
Class[] pluginDGMs = VMPluginFactory.getPlugin
().getPluginDefaultGroovyMethods();
I would assume it is getPlugin() that is returning null, which would mean
that all the following are failing:
static {
plugin = createPlugin(JDK7_CLASSNAME_CHECK, JDK7_PLUGIN_NAME);
if (plugin == null) {
// v6 plugin is the same as v5 but with some scripting stuff
// so check below is good enough for now (can be true for JVM
5)
plugin = createPlugin(JDK6_CLASSNAME_CHECK, JDK6_PLUGIN_NAME);
}
if (plugin == null) {
plugin = createPlugin(JDK5_CLASSNAME_CHECK, JDK5_PLUGIN_NAME);
}
}
We included the groovy-all-2.4.6 jar in the APK like any other jar. I've
searched the web but have seen no one with this problem. I have seen the
groovy gradle plugin. Is that required? Any help is much appreciated.
Thanks.
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: FATAL
EXCEPTION: AsyncTask #1
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime:
Process: com.ibm.watson.edge, PID: 7802
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime:
java.lang.RuntimeException: An error occured while executing
doInBackground()
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
android.os.AsyncTask$3.done(AsyncTask.java:300)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
java.util.concurrent.FutureTask.setException(FutureTask.java:222)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
java.util.concurrent.FutureTask.run(FutureTask.java:242)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
java.lang.Thread.run(Thread.java:841)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: Caused
by: java.lang.ExceptionInInitializerError
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
org.codehaus.groovy.runtime.InvokerHelper.<clinit>(InvokerHelper.java:65)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
groovy.lang.GroovyObjectSupport.<init>(GroovyObjectSupport.java:34)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
groovy.lang.Binding.<init>(Binding.java:35)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
groovy.lang.GroovyShell.<init>(GroovyShell.java:62)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
com.ibm.watson.edge.mesos.slave.groovy.GroovyService.<init>(GroovyService.java:8)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
com.ibm.watson.edge.mesos.slave.groovy.GroovyAgent.<init>(GroovyAgent.java:17)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
com.ibm.watson.edge.AsyncAndroidAgent.doInBackground(AsyncAndroidAgent.java:39)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
com.ibm.watson.edge.AsyncAndroidAgent.doInBackground(AsyncAndroidAgent.java:19)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
android.os.AsyncTask$2.call(AsyncTask.java:288)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
java.util.concurrent.FutureTask.run(FutureTask.java:237)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
java.lang.Thread.run(Thread.java:841)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: Caused
by: java.lang.NullPointerException
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:101)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:73)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
groovy.lang.GroovySystem.<clinit>(GroovySystem.java:36)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
org.codehaus.groovy.runtime.InvokerHelper.<clinit>(InvokerHelper.java:65)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
groovy.lang.GroovyObjectSupport.<init>(GroovyObjectSupport.java:34)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
groovy.lang.Binding.<init>(Binding.java:35)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
groovy.lang.GroovyShell.<init>(GroovyShell.java:62)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
com.ibm.watson.edge.mesos.slave.groovy.GroovyService.<init>(GroovyService.java:8)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
com.ibm.watson.edge.mesos.slave.groovy.GroovyAgent.<init>(GroovyAgent.java:17)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
com.ibm.watson.edge.AsyncAndroidAgent.doInBackground(AsyncAndroidAgent.java:39)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
com.ibm.watson.edge.AsyncAndroidAgent.doInBackground(AsyncAndroidAgent.java:19)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
android.os.AsyncTask$2.call(AsyncTask.java:288)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
java.util.concurrent.FutureTask.run(FutureTask.java:237)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
03-30 15:45:28.442 7802-7824/com.ibm.watson.edge E/AndroidRuntime: at
java.lang.Thread.run(Thread.java:841)
03-30 15:45:28.467 7802-7824/? I/Process: Sending signal. PID: 7802 SIG: 9
David Wood
Computing Systems for Wireless Networks
IBM TJ Watson Research Center
dawood@us.ibm.com
914-945-4923 (office), 914-396-6515 (mobile)