Robolectric 2与JNI

时间:2016-09-22 12:13:48

标签: android maven java-native-interface robolectric

在我的应用程序中,我盯着使用使用JNI的外部库。

System.loadLibrary("somelib")

我也与Robolectric 2进行了联合。当我运行这些测试时,我得到以下异常:

java.lang.UnsatisfiedLinkError: no dafprovider in java.library.path

如何配置Robolectric以加载此本机库?
注意:我正在使用Maven

1 个答案:

答案 0 :(得分:0)

不幸的是, Robolectric 与JNI不兼容。我的建议是将JNI库加载到类中并在测试中模拟它,或者覆盖测试中的JNI方法加载:

public class MyApp extends Application {
   public void onCreate() {
      loadJNI();
   }

   protected void loadJNI() {
      System.loadLibrary("somelib");
   }
}

在测试中:

public class TestMyApp extends MyApp {
    @Override
    protected void loadJNI() {
      //don't do anything
    }
}