Android 机器人自定义阴影码
嗨,每次我在处理自定义阴影时,都会通过Robolectric获得此异常跟踪Android 机器人自定义阴影码,android,robolectric,Android,Robolectric,嗨,每次我在处理自定义阴影时,都会通过Robolectric获得此异常跟踪 java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at org.robolectric.bytecode.RobolectricInternals.newInstanceOf(RobolectricInternals.java:33) at org.robolectric.Robolectric.newInsta
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at org.robolectric.bytecode.RobolectricInternals.newInstanceOf(RobolectricInternals.java:33)
at org.robolectric.Robolectric.newInstanceOf(Robolectric.java:345)
at org.robolectric.shadows.ShadowBitmapFactory.create(ShadowBitmapFactory.java:120)
at org.robolectric.shadows.ShadowBitmapFactory.decodeFile(ShadowBitmapFactory.java:72)
at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java)
我正在做的是我有一个自定义的阴影
@Implements(Bitmap.class)
class MyShadowBitmap extends org.robolectric.shadows.ShadowBitmap {
public MyShadowBitmap() {
// can also be some other config value
setConfig(Bitmap.Config.ARGB_8888);
}
}
我正在使用这个类
public class CustomTestRunner extends RobolectricTestRunner {
public CustomTestRunner(Class<?> testClass) throws InitializationError {
super(testClass);
}
@Override
public Setup createSetup() {
return new MySetup();
}
@Override
protected ShadowMap createShadowMap() {
return super.createShadowMap()
.newBuilder()
.addShadowClass(MyShadowBitmap.class)
.build();
}
}
}
请帮助我,我哪里做错了,以及如何在robolectric中使用自定义阴影 我自己对robolectric很陌生,但我认为需要以不同的方式定义阴影的构造函数,如:
public void\uuuu构造函数
,而不是通常的public MyShadowBitmap()
请看这里:
(阴影构造器部分)我对Robolectric也很陌生,但我制作了一个有效的阴影图像视图。您可以查看以下代码: 您应该修复的错误:
package com.jiahaoliuliu.robolectricsample;
import android.graphics.Bitmap;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.RealObject;
import org.robolectric.shadows.ShadowBitmap;
import java.io.OutputStream;
/**
* Created by jiahao on 2/15/15.
*/
@Implements(Bitmap.class)
public class MyShadowBitmap extends ShadowBitmap {
@RealObject
private Bitmap realBitmap;
private int bitmapQuality = -1;
@Implementation
public boolean compress(Bitmap.CompressFormat format, int quality, OutputStream stream) {
bitmapQuality = quality;
System.out.println("Using the shadow to compress");
return true;
}
}
祝你好运 你解决了这个问题吗?如果是,请选择一个答案。
package com.jiahaoliuliu.robolectricsample;
import android.graphics.Bitmap;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.RealObject;
import org.robolectric.shadows.ShadowBitmap;
import java.io.OutputStream;
/**
* Created by jiahao on 2/15/15.
*/
@Implements(Bitmap.class)
public class MyShadowBitmap extends ShadowBitmap {
@RealObject
private Bitmap realBitmap;
private int bitmapQuality = -1;
@Implementation
public boolean compress(Bitmap.CompressFormat format, int quality, OutputStream stream) {
bitmapQuality = quality;
System.out.println("Using the shadow to compress");
return true;
}
}