无法解析Android测试的库活动

时间:2014-06-08 08:23:59

标签: android

我使用Android-Release Archetype创建了一个非常基本的Android-Maven项目。我改变的一件事是将Android项目设置为Android库。这意味着我没有定义活动的 AndroidManifest 。 Maven构建仍适用于HelloAndroidActivityHelloAndroidActivityTest,但即使复制这两个类也会使新测试失败:

  

无法解决以下活动:Intent {act = android.intent.action.MAIN flg = 0x10000000 cmp = org.acme.project.android / .HelloAndroidActivity2}

我搜索了整个工作区,找不到任何可以解释为什么它适用于该活动而不是这个活动的HelloAndroidActivity的引用。所以我想我有两个问题:为什么集成测试适用于任何清单文件中未引用的活动?为什么它不适用于此活动的相同副本?

我认为这不重要,但这些是我的 AndroidManifests

图书馆项目:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="org.acme.project.android"
        android:versionCode="1"
        android:versionName="1.0-SNAPSHOT" >

        <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" />

    </manifest>

集成测试项目:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="org.acme.project.android.test"
        android:versionCode="1"
        android:versionName="1.0-SNAPSHOT" >

        <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" />

        <application
            android:icon="@drawable/icon"
            android:label="@string/app_name" >
            <uses-library android:name="android.test.runner" />
        </application>

        <instrumentation
            android:name="android.test.InstrumentationTestRunner"
            android:targetPackage="org.acme.project.android" />
    </manifest>

不改变我今天得到的东西:

  

[2014-06-09 08:39:47 - org.acme.project.android.it]测试运行失败:由于'java.lang.ClassNotFoundException'而导致检测运行失败

根本没有额外的信息,甚至没有丢失哪个班级。

1 个答案:

答案 0 :(得分:0)

我得到了它的工作。我认为只有最后一步应该是必要的,但就我而言,在我进行整个考验之后它才开始工作:

  1. 我将集成测试项目的包设置为org.acme.project.android(即删除了.test) - 这使Eclipse能够执行测试
  2. 我再次添加.test,因为Maven不喜欢一个包中的R文件(IllegalArgumentException: already added: Lorg/acme/project/android/R
  3. (此时,所有更改都已还原)我将活动添加到集成测试清单
  4. 正如我所说,前两个步骤应该是愚蠢的,但是我已经将这些活动添加到各个清单文件一百次,并且它从未运行过。因此,可能需要在更换包装后进行彻底的清洁和构建,以使更改可见。