1

我想从测试的应用程序内部使用仪表接口来检测我的应用程序。我有一个自定义活动,我的每个活动都扩展了。在那我想启动仪器以获取有关应用程序的信息:

public class BxActivity extends Activity {
@Override
protected void onResume() {
    super.onResume();
    ...
    boolean instru = startInstrumentation(new ComponentName(BxActivity.this, InstrumentationRobot.class), null, null);

恕我直言,应该使用 InstrumentationRobot.class 中的检测代码重新启动应用程序。它在同一个 Android 项目和包中。

public class InstrumentationRobot extends Instrumentation {
@Override
public void onCreate(Bundle arguments) {
    super.onCreate(arguments);
    Log.v("InstrRobot", "Hello from Robot");
    start();
}

我已将仪表添加到清单中,如下所示:

 <instrumentation
        android:name="InstrumentationRobot" (class in the same pkg)
        android:targetPackage="my.package.name" />
</application>

这是我的仪器的正确清单代码,所以我的小机器人向我打印出“你好”。

谢谢,索伦

4

1 回答 1

3

我找到了解决方案并用正确的代码更新了我的问题。错误出现在清单文件中。

我删除了

<uses-library android:name="android.test.runner" />

标记和检测类名称不能以点开头,如果检测类与应用程序本身位于同一个包和 .apk 文件中。

检测标签也必须是清单的直接子代。

于 2012-12-11T11:11:19.313 回答