小编Rag*_*eer的帖子

Dagger 1.x中的单身人士

当使用Dagger时,我发现当我在任何需要它的地方注入它时,我会得到一个单例的多个实例.我已经注释了类和提供方法@Singleton.谁能想到为什么会这样?

编辑:

如果它有帮助,我在Dagger的GitHub(https://github.com/square/dagger/tree/master/examples/android-activity-graphs)中使用与我的应用程序相同的结构作为示例应用程序.我正在尝试在基本活动中使用Singleton,并@Provides在自定义Application类中使用提供的几个第三方类.是因为我在每个活动中加上原始对象图的模块吗?

(PS:我一般都是Dagger和DI的新手,所以如果你能提供解释以便我可以学习,我将不胜感激.谢谢.)

android dependency-injection dagger

18
推荐指数
1
解决办法
4400
查看次数

Espresso UI测试在我执行单个测试时运行,但在执行测试集时失败

我正在使用IdlingResource同步一些网络相关的任务.我在@Before@After方法中注册和注销idlingresource .仪器是AndroidJUnitRunner.

基本步骤顺序是:

  1. Espresso点击一个发出网络请求的按钮
  2. 当我收到回复时,espresso会点击另一个按钮来启动新活动.
  3. 通过新活动提出更多网络请求.

但实际发生的是,第一个网络请求已经生成,但是没有启动新活动.我有一种感觉,主线程在某处循环,但我无法确定它.

当我执行单个测试(右键单击方法,单击"运行testmethod ..")它可以工作,但是当我尝试在类中执行所有测试方法时,它会失败.

很酷的是即使每个方法都是空的,除了实际进行UI测试的方法之外,它仍然会失败.

类似的问题在这个帖子中,但没有答案:Android上的Espresso 2,中间测试失败,因为未能启动测试中的活动,而以前测试的活动仍然存在

任何帮助将不胜感激.

multithreading android android-testing android-espresso

7
推荐指数
0
解决办法
612
查看次数

自定义组件不绘制可绘制

我正在尝试学习创建自定义视图和组件,并且已经遇到了障碍.我无法使用drawable.draw(canvas)方法在canvas上绘制任何drawable.但是如果我得到位图并使用canvas.drawBitmap()方法绘制它,它就可以工作.

代码中没有任何花哨的东西:

@Override
protected void onDraw(Canvas canvas) {

    // drawing bitmap directly works
    /*
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
    canvas.drawBitmap(bitmap, 10, 10, paint);
    */

    // this doesn't work but mThumb is not null in log
    if(mThumb != null) {
        canvas.save();
        mThumb.draw(canvas);
        Log.d("Custom component - ", "mThumb : " + mThumb);
        canvas.restore();
    }
}
Run Code Online (Sandbox Code Playgroud)

日志显示mThumb变量包含drawable.我是标准的方式:

if(attrs != null) {
    final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CustomView);
    color = a.getColor(R.styleable.CustomView_cv_color, color);
    thumb = a.getDrawable(R.styleable.CustomView_cv_thumb);
    setThumb(thumb);
    a.recycle();
}

setColor(color);
Run Code Online (Sandbox Code Playgroud)

自定义视图的xml是:

<me.mycustomview.MyCustomView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:cv_color="@android:color/holo_red_light" …
Run Code Online (Sandbox Code Playgroud)

android

3
推荐指数
1
解决办法
1019
查看次数

无法加载类java.util.Arrays $ ArrayList的模块适配器.请确保为此模块运行代码生成

我试图在没有Maven的情况下使用Dagger(仅使用ADT Eclipse)并遇到了这个问题.我尝试在注释处理选项中添加jar,并使用java writer 2.2.1,因为我从Dclipse中学到的示例通过eclipse构建失败,并且"请确保为此模块运行代码生成".但它仍然无效.

任何人都可以指出我做错了什么?

android dagger

2
推荐指数
1
解决办法
825
查看次数