Hello all,
I'm new to Android development, I've more familiar with C/C++ native development, so please forgive and stupidity on my part.
I'm attempting to use Android Studio 2.1.2 to debug a native code library, called from the main activity (written in Java), via JNI, but I'm getting the following exception (details follow my signature).
The library in question hasn't been built in Android Studio, but from an external makefile project.If I configure the "Run Configuration->Debugger->"Debug type"" to "Java", the application (including the native code), runs fine. However, when I set the "debug type" to "Native" or "Hybrid" I get the exception below.
Is debugging an externally built native library supported? Or am I obliged to build the library with Android Studio too?
My "Gradle version" is 2.1 (as it is in the teapot sample), My "Android plugin Version" is 2.1.2.
Thanks in advance, I'm happy to provide anything else, if anyone can help.
John.
"Exception in pugin Android NDK Support. Moments ago. Occurred 2 times since the last clear."
java.lang.NullPointerException
at com.android.tools.ndk.run.AndroidNativeDebugProcess$2.run(AndroidNativeDebugProcess.java:218)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:951)
at com.android.tools.ndk.run.AndroidNativeDebugProcess.initArtSigSegvFaultBreakpoint(AndroidNativeDebugProcess.java:213)
at com.android.tools.ndk.run.AndroidNativeDebugProcess.doLaunchTarget(AndroidNativeDebugProcess.java:170)
at com.jetbrains.cidr.execution.debugger.CidrDebugProcess$7.run(CidrDebugProcess.java:436)
at com.jetbrains.cidr.execution.debugger.CidrDebugProcess$MyCommandProcessor.consume(CidrDebugProcess.java:697)
at com.jetbrains.cidr.execution.debugger.CidrDebugProcess$MyCommandProcessor.consume(CidrDebugProcess.java:690)
at com.intellij.util.concurrency.QueueProcessor$2$1.run(QueueProcessor.java:110)
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
at com.intellij.util.concurrency.QueueProcessor$2.consume(QueueProcessor.java:107)
at com.intellij.util.concurrency.QueueProcessor$2.consume(QueueProcessor.java:104)
at com.intellij.util.concurrency.QueueProcessor$3$1.run(QueueProcessor.java:215)
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
at com.intellij.util.concurrency.QueueProcessor$3.run(QueueProcessor.java:212)
at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:366)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at org.jetbrains.ide.PooledThreadExecutor$1$1.run(PooledThreadExecutor.java:55)