Android,在检测模式下运行常规应用仅限 adb + 调试

问题描述

我希望以一种可以在运行时访问 InstrumentationRegistry.getInstrumentation() 的方式运行 Android 应用。

这仅用于调试版本,通过 ADB 安装应用程序就足够了。因为我不想使用仪器测试套件,所以我不想使用 InstrumentationTestRunner,而是直接启动应用程序的 MainActivity

这怎么可能?

我尝试过的:

  1. 添加了对测试包的常规实现依赖(而不是仅测试依赖) - 有效
    implementation 'androidx.test.uiautomator:uiautomator:2.2.0'
    implementation 'androidx.test:runner:1.1.0'
  1. 向清单添加了检测
    <instrumentation android:name=".MainActivity"
        android:targetPackage="com.android.shell"
        android:label="App" />

(不确定这是否真的正确。)

  1. 使用(设备上已安装的应用)运行应用
adb shell am instrument -w com.example.app/.MainActivity         

结果:

android.util.AndroidException: INSTRUMENTATION_FAILED: com.example.app/com.example.app.MainActivity
    at com.android.commands.am.Instrument.run(Instrument.java:519)
    at com.android.commands.am.Am.runInstrument(Am.java:202)
    at com.android.commands.am.Am.onRun(Am.java:80)
    at com.android.internal.os.BaseCommand.run(BaseCommand.java:60)
    at com.android.commands.am.Am.main(Am.java:50)
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:399)

所以本质上我的问题是,我如何以可以在运行时使用 UiAutomator 的方式运行应用程序?

提前致谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)