我想在测试的应用内部使用Instrumentation界面来检测我的应用。 我有一个自定义活动,我的每个活动都延伸。在那里我想开始检测以获取有关应用程序的信息:
public class BxActivity extends Activity {
@Override
protected void onResume() {
super.onResume();
...
boolean instru = startInstrumentation(new ComponentName(BxActivity.this, InstrumentationRobot.class), null, null);
Imho应该使用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>
这是我的仪器的正确清单代码,所以我的小机器人向我打印“你好”。
谢谢,soeren
答案 0 :(得分:2)
我找到了解决方案并使用正确的代码更新了我的问题。 错误发生在清单文件中。
我删除了
<uses-library android:name="android.test.runner" />
如果检测类与应用程序本身位于同一个包和.apk文件中,则标记和检测类名称不能以点开头。
instrumentation标签也必须是清单的直接子项。