Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android仪器测试:IllegaAccessError_Android_Maven_Instrumentation_Buildpath - Fatal编程技术网

android仪器测试:IllegaAccessError

android仪器测试:IllegaAccessError,android,maven,instrumentation,buildpath,Android,Maven,Instrumentation,Buildpath,我在运行Android工具测试时收到了IllegaAccessError。 这是Logcat输出: java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation 这是我的设置: TestProjectTestProject下测试TestProject,它在构建路径(在“项目”选项卡中)中包含另一个项目,并从“订单和导出”选项卡导出。被测试的类属于另一个项目

我在运行Android工具测试时收到了IllegaAccessError。
这是Logcat输出:

java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
这是我的设置:
TestProject
TestProject下测试
TestProject
,它在构建路径(在“项目”选项卡中)中包含另一个项目,并从“订单和导出”选项卡导出。被测试的类属于另一个项目

我按照这里的建议配置构建路径

构建是从命令行使用Maven完成的
另一个项目
作为依赖项,位于
TestProject
下TestProject
的pom文件中。这就是仍然出现错误的原因吗?我怎样才能解决这个问题?仅针对
测试项目下的项目在pom中包含
另一个项目
,并在
测试项目的pom中包含
测试项目下的项目

eclipse的构建路径如何与maven的pom相结合

我不清楚这一点,任何帮助都将不胜感激

谢谢


我尝试了以下方法,但仍然遇到问题:

  • TestProject
    的pom中删除了另一个项目
    
    
  • 遵循关于我的
    的建议,如果我为
    另一个项目添加
    提供的
    ,则测试项目
    甚至不会生成
  • 我被困在这一点上,请让我知道,如果你有出路


    谢谢

    首先,遵循android maven插件wiki页面上的库部分:

    如果您的项目设置中包含库,则也需要按规定添加这些库,否则它们将被添加到测试中,这将导致重复错误«预验证类中的类引用已解析为意外实现»

    注意Bug#142,此时只有带有jar的库才能工作

    然后右键单击测试项目,单击构建路径->配置构建路径,勾选订单和导出选项卡中的Maven Dependencies:


    这对我有效,希望能有所帮助。

    我也有同样的问题。为了解决这个问题,我必须将主应用程序的pom.xml中的库依赖项添加到测试应用程序的pom.xml中,但将
    提供的
    添加到它们中

    因此,如果我在MyApp pom.xml中有以下依赖项:

    
    com.nineolandroid
    图书馆
    2.4.0
    
    我必须将此添加到MyAppTest pom.xml中:

    
    com.nineolandroid
    图书馆
    2.4.0
    假如
    
    您没有指定这是一个仅限Eclipse的问题,还是项目也无法使用Maven构建(使用
    android Maven插件
    )。就我而言,两者都会失败。原因是:TestProject.apk
    下的
    的可传递依赖项也会进入
    TestProject.apk
    中,从而导致
    预验证
    类问题。我的解决方案是在我的
    TestProject
    的pom中应用这一点:

    <dependency>
        <groupId>com.example</groupId>
        <artifactId>UnderTestProject</artifactId>
        <version>1.0-SNAPSHOT</version>
        <type>apk</type>
        <exclusions>
            <exclusion>
                <groupId>*</groupId>
                <artifactId>*</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
    
    com.example
    
    ,将产生一个警告,但工作做得很漂亮(在
    Maven 3.1.1
    上测试)。

    谢谢您的回答!我现在已经搬到了Robolectric,并且已经开始运行测试。然而,我必须进行仪器测试,一旦我再次接触仪器,我将对此进行验证。在那之前我接受你的回答。
    <dependency>
        <groupId>com.nineoldandroids</groupId>
        <artifactId>library</artifactId>
        <version>2.4.0</version>
        <scope>provided</scope>
    </dependency>
    
    <dependency>
        <groupId>com.example</groupId>
        <artifactId>UnderTestProject</artifactId>
        <version>1.0-SNAPSHOT</version>
        <type>apk</type>
        <exclusions>
            <exclusion>
                <groupId>*</groupId>
                <artifactId>*</artifactId>
            </exclusion>
        </exclusions>
    </dependency>