Hello,
My test ENV: Android Studio 1.1.0、gradle 1.1.0、roboletric gradle plugin 2.4
My TestScript:
@Config(emulateSdk = 18, application= WubaHybridApplication.class) @RunWith(CustomRobolectricRunner.class) public class LaunchActivityTest { @Test public void testone() throws Exception { Activity activity = Robolectric.setupActivity(LaunchActivity.class); ShadowActivity sa = Robolectric.shadowOf(activity); System.out.println(activity.getClass().getName().toString()); Assert.assertNotNull(activity); Assert.assertNotNull(sa); Intent intent = sa.peekNextStartedActivity(); Assert.assertNotNull(intent); }
My CustomRobolectricRunner
public class CustomRobolectricRunner extends RobolectricTestRunner{ public CustomRobolectricRunner(Class<?> testClass) throws InitializationError { super(testClass); String buildVariant = (BuildConfig.FLAVOR.equals("")? "" : BuildConfig.FLAVOR+ "/") + BuildConfig.BUILD_TYPE; String intermediatesPath = BuildConfig.class.getResource("") .toString().replace("file:", ""); intermediatesPath = intermediatesPath .substring(0, intermediatesPath.indexOf("/classes")); System.setProperty("android.package", BuildConfig.APPLICATION_ID); System.setProperty("android.manifest", intermediatesPath + "/manifests/full/" + buildVariant + "/AndroidManifest.xml"); System.setProperty("android.resources", intermediatesPath + "/res/" + buildVariant); System.setProperty("android.assets", intermediatesPath + "/assets/" + buildVariant); System.loadLibrary("libBaiduMapSDK_v3_1_0"); System.loadLibrary("libcom_wuba_aes_ExecV3_1_0"); System.loadLibrary("libIvw35"); System.loadLibrary("liblocSDK4"); System.loadLibrary("libmsc"); System.loadLibrary("libUninstallObserverUtil"); } }
Getting the following exception:
java.lang.UnsatisfiedLinkError: no libBaiduMapSDK_v3_1_0 in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1886) at java.lang.Runtime.loadLibrary0(Runtime.java:849) at java.lang.System.loadLibrary(System.java:1088) at com.robotest.runner.CustomRobolectricRunner.<init>(CustomRobolectricRunner.java:31) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104) at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:41) at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:211) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)