当前位置: 首页 > 面试题库 >

无法解决以下活动:检测测试android活动时的意图

祁增
2023-03-14
问题内容

尝试在android上运行仪器测试时出现错误。我已经编写了一个名为 AudioPlayerActivity 的活动,该活动位于
com.mycompany.mobile.android.gui 包中,现在我正在尝试测试该项目的GUI,并且在以下错误中运行:

java.lang.RuntimeException:无法解析以下活动:Intent {act = android.intent.action.MAIN
flg = 0x10000000 cmp = com.mycompany.mobile.android.gui /
.AudioPlayerActivity}

我已经阅读了这个问题,并遵循了那里的建议,但无济于事。我还搜索了该错误,但没有找到任何帮助。

这是我用于测试项目的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也位于同一程序包中。我不像活动大多数人那样用活动的名称而不是包名称来调用超级构造函数。

为了您的利益,这是描述测试活动的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意向过滤器,但这并没有改变测试的结果。我尝试从其他功能开始活动,没有它们,也没有改变结果。


问题答案:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.mycompany.mobile.android.gui"
... ...

您是否为Android项目和Android测试项目使用了相同的包名称?这可能是一个问题,尽管我不确定是否会导致您的java.lang.RuntimeException。

根据此处的官方开发指南,您的测试项目必须与测试的项目具有不同的包名称:

Android包名称是.apk文件的唯一系统名称,由包清单中元素的“ a​​ndroid:package”属性设置。
测试软件包的Android软件包名称必须与被测应用程序的Android软件包名称不同。
默认情况下,Android工具通过在被测应用程序的程序包名称后附加“ .test”来创建测试程序包名称。

尝试将包名称com.mycompany.mobile.android.gui.test用于测试项目。



 类似资料:
  • 问题内容: 我在运行Android单元测试时遇到问题。尝试运行简单测试时遇到此错误。 这是日志: Blockquote java.lang.RuntimeException:无法解析以下活动:Intent {act = android.intent.action.MAIN flg = 0x10000000 cmp = com.wsandroid.Activities / .SplashActivi

  • 我正在开发一个运行在PC上的Java测试控制器应用程序。它有: 在android手机上安装应用程序: 怎么做有什么想法吗?

  • 我也有类似的问题: CordovaActivity无法解析为Phonegap 3.4中的类型。 意味着,在主类中,不能解析为类型。 然而,我从这里下载了科尔多瓦Android Zip(如评论中所述):https://github.com/apache/cordova-android. 包括来自到我的构建路径。 行: 现在工作正常,但仍然找不到任何名为的扩展类。 我通过以下方式证明: 在未包装的文件

  • 我有Spring启动应用程序。我想为SecurityConfig创建两个配置文件:dev,prod。第一次尝试是从WebSecurityConfigurerAdapter扩展两个类,但是我在SecurityConfig类中创建了两个bean。我的配置如下所示: 也为运行应用程序类: BeanCreationException:在org.springframework.security.config

  • 我很难说服新的Android构建系统运行测试。在运行测试时,它给出了错误,这在其他问题中已经讨论过,但其中没有任何问题能够解决我的问题。 我已经将它剥离下来,这样我的测试包就完全不依赖于主包(),但仍然存在启动活动的问题。 我的测试活动: 和我的测试类: 建筑的相关部分。等级: 我获得的完整堆栈跟踪是: 我没有包括我的,因为我读到的所有内容都表明,我不需要为添加意图,但是我无论如何都试图这样做,结

  • 1.接口描述 检查用户拍摄的视频是否为活体 请求方式 POST 请求 URL https://cloudapi.linkface.cn/liveness/check_liveness 2.请求参数 字段 类型 必需 描述 api_id string 是 API 账户 api_secret string 是 API 密钥 motions string 是 用户动作序列 complexity int