Robolectric的坑

问题一:test framework quit unexpectedly

解决方法见下图:

基本上默认都会在VM option填上了Junit,具体原因不明,我们只需要把这个VM options清空,然后点击下方的Apply按钮,再点击OK保存,运行单元测试用例就不会再报上面那个错误了。(注:测试的方法报这个错误也是同样的解决方法)

 

问题二:Not available in classpath: /native/objectbox-windows-x64.dll

File not available: D:\ForestPatrolMvvm\app\objectbox-windows-x64.dll

java.lang.UnsatisfiedLinkError: no objectbox-windows-x64 in java.library.path

 

解决方法:因为我在Application里面引用了不少第三方库,其中就包含了objectbox,我找了很久都没有发现一个叫做objectbox-windows-x64.dll的文件。后来发现我需要新建一个专门的Application来运行我们的测试用例,所以我新建了“RoboApplication”,这个类的代码很简单,具体如下:

public class RoboApplication extends Application {
}

然后在我的单元测试用例里面加上“@Config(Application=RoboApplication.class)”,运行单元测试用例就不会再报上面那个错误了。(注:如果会报其他问题,那就看一下是不是要初始化一些非第三方的配置)但是,更大的一个问题来了,ObjectBox也就是数据库的使用基本上无处不在呀,我如果不在RoboApplication中初始化ObjectBox的配置,那根本就是寸步难行。如果说我遇到了这样的问题,那么肯定也会有其他人也遇到这种问题,我忽然想到了github上其他人提的issue,说不定就有同样的疑问呢?不过好像没有,我只好查看源码及配置了。在它的主项目build.gradle里面有这样几行配置,并且注明了add all native libraries。

再看看我自己的配置,我的只有:

implementation "io.objectbox:objectbox-android:${OBJECTBOX_VERSION}"

果断把这几行加上,rebuild project,问题解决。

 

问题三:java.lang.VerifyError: Expecting a stackmap frame at branch target 6

因为我在App的onCreate里面还初始化了云推送和友盟的配置,然后就报了上面的错误,百度了一下解决方法,感觉也挺简单的。

解决方法:把jdk参数设置为:-noverify,也就是下图箭头那一栏填入“-noverify”。

问题四:ShadowImageView的弃用,源码如下:

public class ShadowImageView extends ShadowView {

  @RealObject
  private ImageView realImageView;

  /**
   * @deprecated Prefer shadowOf(realImageView.getDrawable()).getCreatedFromResId()
   * - this method will be removed in the future.
   */
  @Deprecated
  public int getImageResourceId() {
    return shadowOf(realImageView.getDrawable()).getCreatedFromResId();
  }

  /**
   * @deprecated Prefer ((BitmapDrawable)ImageView.getDrawable()).getBitmap() - this method will
   * be removed in the future.
   */
  @Deprecated
  public Bitmap getImageBitmap() {
    return ((BitmapDrawable)realImageView.getDrawable()).getBitmap();
  }
}

 

根据源码,我们可以知道当我们要判断图片资源加载是否正确时,可以改用

相应的方法去替代getImageResourceId和getImageBitmap方法。

发布了63 篇原创文章 · 获赞 9 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/shan286/article/details/103591543