android单元测试&x2B;机器人分子3.0+;java.lang.LinkageError:加载程序约束冲突

android单元测试&x2B;机器人分子3.0+;java.lang.LinkageError:加载程序约束冲突,android,robolectric,Android,Robolectric,错误: java.lang.LinkageError:加载程序约束冲突:解析时 方法“com.example.demo.utils.R.init(Landroid/content/Context;)V” 类加载器(类的实例) 组织/机器人分子/内部/字节码/检测类加载器)的 当前类、com/example/test/FirstTest和类加载器 (sun/misc/Launcher$AppClassLoader的实例)用于该方法的 定义类com/example/demo/utils/R具有不同的

错误:

java.lang.LinkageError:加载程序约束冲突:解析时 方法“com.example.demo.utils.R.init(Landroid/content/Context;)V” 类加载器(类的实例) 组织/机器人分子/内部/字节码/检测类加载器)的 当前类、com/example/test/FirstTest和类加载器 (sun/misc/Launcher$AppClassLoader的实例)用于该方法的 定义类com/example/demo/utils/R具有不同的类对象 用于签名中使用的类型android/content/Context

测试代码:

@runwith(RobolectricGradleTestRunner.class)
@配置(常量=BuildConfig.class,sdk=21,应用程序=TestApplication.class)
公开课第一次考试{
@试验
公共无效测试用例01(){
MainActivity MainActivity=机器人分子.setupActivity(MainActivity.class);
....
}
}
build.gradle:

dependencies {
    testCompile 'junit:junit:4.12'
    testCompile "org.robolectric:robolectric:3.0"
    testCompile 'org.robolectric:shadows-httpclient:3.0'
...
}
src/test/java/../TestApplication:

公共类测试应用程序扩展了应用程序{
}
com/example/demo/main活动:

公共类MainActivity扩展活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
...
com.example.demo.utils.R.init(getApplicationContext());
...
}
}
com/example/demo/utils/R:

公共最终课程R{
公共静态资源;
私有静态字符串packageName;
公共静态void init(上下文参数上下文){
resources=paramContext.getResources();
packageName=paramContext.getPackageName();
}
...
}

我发现测试运行失败的原因是使用了名为
com.example.demo.utils.R
的类,该类与
R
类冲突
由Android系统自动生成。如果您将
R
重命名为另一个名称,如
Ra
,它会起作用。

我发现测试运行失败的原因是使用了名为
com.example.demo.utils.R
的类,该类与
R
类冲突 由Android系统自动生成。如果您将
R
重命名为另一个名称,如
Ra
,则它可以工作