plinio

Can't unit test with Esri's Android Runtime SDK

Discussion created by plinio on Mar 6, 2020
Latest reply on Mar 9, 2020 by plinio

I'm writing some unit tests in my android application and every call to Esri's Android Runtime SDK throws a null pointer exeption.

The method

 

@Test
public void addition_isCorrect() {
    SpatialReference wgs84 = SpatialReferences.getWgs84();
    assertEquals(4, 2 + 2);
}

 

... breaks with the following stack trace:

 

java.lang.ExceptionInInitializerError
at com.esri.arcgisruntime.internal.jni.CoreSpatialReference.<clinit>(SourceFile:40)
at com.esri.arcgisruntime.geometry.SpatialReference.<init>(SourceFile:149)
at com.esri.arcgisruntime.geometry.SpatialReference.create(SourceFile:86)
at com.esri.arcgisruntime.geometry.SpatialReferences.<clinit>(SourceFile:26)
at br.gov.ba.conder.vistorias.ExampleUnitTest.addition_isCorrect(ExampleUnitTest.java:18)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: java.lang.NullPointerException
at com.esri.arcgisruntime.ArcGISRuntimeEnvironment.c(SourceFile:250)
at com.esri.arcgisruntime.ArcGISRuntimeEnvironment.<clinit>(SourceFile:50)
... 27 more

 

What I'm doing wrong?

I'm using the Android Runtime SDK 100.6.0

Outcomes