【问题标题】: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
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-24
      • 1970-01-01
      相关资源
      最近更新 更多