小编Tar*_*rek的帖子

由于 IncompleteClassChangeError,Espresso 测试失败

Espresso 测试运行良好,但是当尝试检查 toast 消息是否出现时,使用此代码

onView(withText(R.string.added_successfully_msg)).inRoot(toastMatcher())
                .check(matches(withText(R.string.added_successfully_msg))); 
Run Code Online (Sandbox Code Playgroud)

或者这个

onView(withText(R.string.added_successfully_msg)).inRoot(withDecorView(not(activity.getWindow().getDecorView()))).check(matches(isDisplayed()));
Run Code Online (Sandbox Code Playgroud)

抛出这个异常

java.lang.IncompatibleClassChangeError: Class 'org.hamcrest.StringDescription' does not implement interface 'java.lang.Iterable' in call to 'java.util.Iterator java.lang.Iterable.iterator()' (declaration of 'org.hamcrest.BaseDescription' appears in /data/app/my package name.test-7NCoDq2dIYza4GpnMXXGhQ==/base.apk)
at org.hamcrest.BaseDescription.appendValueList(BaseDescription.java:81)
at androidx.test.espresso.matcher.BoundedDiagnosingMatcher.describeTo(BoundedDiagnosingMatcher.java:4)
at org.hamcrest.BaseDescription.appendDescriptionOf(BaseDescription.java:24)
at org.hamcrest.StringDescription.toString(StringDescription.java:28)
at org.hamcrest.BaseMatcher.toString(BaseMatcher.java:26)
at java.util.Formatter$FormatSpecifier.printString(Formatter.java:2978)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2855)
at java.util.Formatter.format(Formatter.java:2524)
at java.util.Formatter.format(Formatter.java:2459)
at java.lang.String.format(String.java:2911)
at androidx.test.espresso.ViewInteraction$2.call(ViewInteraction.java:12)
at androidx.test.espresso.ViewInteraction$2.call(ViewInteraction.java:1)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Run Code Online (Sandbox Code Playgroud)

测试依赖性

  testImplementation 'androidx.test:monitor:1.5.0'
    testImplementation 'junit:junit:4.13.2'
    testImplementation "org.mockito:mockito-core:3.12.4"
    // Core …
Run Code Online (Sandbox Code Playgroud)

android android-espresso

5
推荐指数
1
解决办法
1515
查看次数

在 Picasso 中使用目标获取位图

我正在开发电影 Android 应用程序,它从 API 获取电影列表,该 API 提供所有电影的海报路径。

我想Bitmap从图像的 URL 获取图像,并将其保存为Bitmap模型类中的变量。我想将图像保存为数据库中的 blob 以便直接检索它,而无需在用户每次打开应用程序时重新下载。那可能吗?

我想做这样的事情,但它总是返回 null。

 private Bitmap posterBitmap;

 public void setPosterBitmap () {
    Picasso.get().load(POSTERS_URL).into(new Target() {
        @Override
        public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
            posterBitmap = bitmap; // I don't want to set it to an Image view here
        }

        @Override
        public void onBitmapFailed(Exception e, Drawable errorDrawable) {}

        @Override
        public void onPrepareLoad(Drawable placeHolderDrawable) {}
    });   
}
Run Code Online (Sandbox Code Playgroud)

提前致谢。

java android picasso android-bitmap

4
推荐指数
1
解决办法
7846
查看次数