我在安卓上运行测试时遇到错误。我写了一个Activity,名为,它位于包中,现在我正在尝试测试该项目的GUI,但出现以下错误:
java.lang.RuntimeException: Unable to resolve activity for: Intent { act=android.intent.action.MAIN flg=0x10000000 cmp=com.mycompany.mobile.android.gui/.AudioPlayerActivity }
我已经阅读了这篇问题,并遵循了那里的建议,但仍无济于事。我还在谷歌上搜索了这个错误,但没有找到任何帮助。
这是我的测试项目的AndroidManifest.xml文件的外观:
我们正在通过maven运行整个过程,但这不应该是问题的一部分。
如您所见,被测试的Activity也位于同一包中。我没有像大多数遇到此问题的人那样使用activity代替包名称调用超级构造函数。
有趣的是,这是描述被测试Activity的AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mycompany.mobile.android.gui"
android:versionCode="1"
android:versionName="1.0" >
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.mycompany.mobile.android.gui" />
<application>
<uses-library android:name="android.test.runner" />
</application>
<uses-sdk android:targetSdkVersion="7" />
<supports-screens android:anyDensity="true" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>
这是我的仪表测试。
包 com.mycompany.mobile.android.gui;
import android.test.ActivityInstrumentationTestCase2;
import com.mycompany.mobile.android.gui.AudioPlayerActivity;
public class TestMusicPlayerActivityTest extends ActivityInstrumentationTestCase2<AudioPlayerActivity> {
public TestMusicPlayerActivityTest() {
super("com.mycompany.mobile.android.gui", AudioPlayerActivity.class);
}
public TestMusicPlayerActivityTest(String name) {
super("com.mycompany.mobile.android.gui", AudioPlayerActivity.class);
}
public TestMusicPlayerActivityTest(String pkg, Class<AudioPlayerActivity> activityClass) {
super("com.mycompany.mobile.android.gui", AudioPlayerActivity.class);
}
public void testSomething() {
System.out.println("Nothing works :(");
System.out.println(getActivity());
}
}
我们正在通过maven运行整个过程,但这不应该是问题的一部分。
如您所见,被测试的Activity也位于同一包中。我没有像大多数遇到此问题的人那样使用activity代替包名称调用超级构造函数。
有趣的是,这是描述被测试Activity的AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mycompany.mobile.android.gui"
android:versionCode="1"
android:versionName="1.0" >
<!-- omitted Uses permission + Uses SDK -->
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:debuggable="true"
android:theme="@style/NoTitleBar"
>
<!-- omitted other activities -->
<activity
android:name="com.mycompany.mobile.android.gui.AudioPlayerActivity"
android:screenOrientation="portrait" ></activity>
</application>
</manifest>
我还将该活动添加到了AndroidManifest.xml中,但是这并没有改变任何事情。我还尝试为所需的活动添加MAIN/LAUNCHER意图过滤器,但是这并没有改变测试结果。我已经尝试使用extra启动活动,也尝试不使用它们启动,但这也没有改变结果。