【问题标题】:Robolectric 2 with JNI带 JNI 的 Robolectric 2
【发布时间】:2016-09-22 12:13:47
【问题描述】:
在我的应用中,我盯着使用 JNI 的外部库。
System.loadLibrary("somelib")
我也与Robolectric 2 有联系。当我运行这些测试时,出现以下异常:
java.lang.UnsatisfiedLinkError: no dafprovider in java.library.path
如何配置Robolectric 来加载这个原生库?
注意:我使用的是Maven
【问题讨论】:
标签:
android
maven
java-native-interface
robolectric
【解决方案1】:
很遗憾,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
}
}