android-在APK中通过adb shell命令启动UIautomator失败

问题描述

在APK中通过adb shell命令启动UIautomator失败

源码如下:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
Button stButton = (Button)findViewById(R.id.start_test);
stButton.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                            // TODO Auto-generated method stub
                            try {
                                    Process pro = Runtime
                                                    .getRuntime()
                                                    .exec("uiautomator runtest TestHiDP.jar -c com.huawei.cases.TestAllCase");
                            } catch (Exception e) {
                                    // TODO Auto-generated catch block
                                    e.printStackTrace();
                            }
                    }
            });

    }

报错信息为:
12-03 08:17:24.452: E/UiAutomatorTestRunner(6046): java.lang.RuntimeException: Didn't find class "com.huawei.cases.TestAllCase" on path: DexPathList[[zip file "/system/framework/android.test.runner.jar", zip file "/system/framework/uiautomator.jar", zip file "/data/local/tmp/TestHiDP.jar"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
12-03 08:17:24.452: E/UiAutomatorTestRunner(6046): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.huawei.cases.TestAllCase" on path: DexPathList[[zip file "/system/framework/android.test.runner.jar", zip file "/system/framework/uiautomator.jar", zip file "/data/local/tmp/TestHiDP.jar"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]

那位大神遇到过此类问题吗?还是说是用uiautomator测试只能通过pc端输入命令启动呢?
p.s.我在pc端输入“adb shell uiautomator runtest TestHiDP.jar -c com.huawei.cases.TestAllCase”是可以正常启动

解决方案

adb shell 里面执行的是Llinux shell命令

解决方案二:

需要权限
命令/system/bin/uiautomator runtest TestHiDP.jar -c com.huawei.cases.TestAllCase

解决方案三:

我这根本就运行不了,找不到jar包 Error: /data/local/tmp/AutoTest.jar does not exist

楼主问题解决没 帮忙解答一下,谢谢!

解决方案四:

你是想把uiautomator放在安卓工程里面吧,我一直是pc端调试的。我是最近想在ui测试中调用安卓系统服务,你有办法吗??

时间: 2024-08-03 19:22:19

android-在APK中通过adb shell命令启动UIautomator失败的相关文章

android开发-在APK中通过adb shell命令启动UIautomator失败

问题描述 在APK中通过adb shell命令启动UIautomator失败 源码如下: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_main); Button stButton = (Button)findViewById(R.id.start_test); stButton.setOnClick

process-如何在Android代码中使用 adb shell命令

问题描述 如何在Android代码中使用 adb shell命令 想使用 "mount -o remount,rw /system"这个命令 使用过 Process process = null; DataOutputStream os = null; process = Runtime.getRuntime().exec("su"); os = new DataOutputStream(process.getOutputStream()); os.writeByt

android技巧:如何在android程序中执行adb shell命令

package net.gimite.nativeexe; import java.io.BufferedReader; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLExc

34个Android常用adb shell命令汇总

调试Android程序有时需要adb shell 命令,adb全称Android Debug Bridge ,就是起到调试桥的作用.通过adb我们可以在Eclipse中通过DDMS来调试Android程序,说白了就是debug工具.adb通过监听Socket TCP 5554等端口让IDE和Qemu通讯.默认情况下当我们运行Eclipse时adb进程就会自动运行.adb是一个C/S模式的程序,由三个部分组成:a client,a server and a daemon.其中client和serv

安卓 adb shell命令

adb shell命令 注:在执行一部分命令时不可以进入adb shell里面,应该在设备连接后直接输入指令   1. 显示当前运行的全部模拟器:     adb devices 2. 安装应用程序:     adb install -r 123.apk 3. 获取模拟器中的文件:     adb pull <remote> <local> 4. 向模拟器中写文件:     adb push <local> <remote> 5. 进入模拟器的shell模式

Ruby中执行Linux shell命令的六种方法详解_ruby专题

在Ruby中,执行shell命令是一件不奇怪的事情,Ruby提供了大概6种方法供开发者进行实现.这些方法都很简单,本文将具体介绍一下如何在Ruby脚本中进行调用终端命令. exec exec会将指定的命令替换掉当前进程中的操作,指定命令结束后,进程结束. 复制代码 代码如下: exec 'echo "hello world"' print 'abc' 执行上述的命令,结果如下,我们可以看到没有abc的输出,可以看出来,在执行echo "hello world"命令后

从android一个apk中启动第三方apk应用

从android一个apk中启动第三方apk应用            我们在开发中,经常遇到遇到在一个apk中要去运行另外一个apk,就像我们windows一样,搞一个快捷方式一样,那怎么实现呢?         问题的核心点在于我们要拿到第三方apk的package名称跟class名称,这两个至关重要!比如笔者做测试用的qq apk,package名称是com.tencent.pad.qq,class名称是com.tencent.pad.qq.login.QQLoginActivity.从一

Android adb shell命令合集

  1. 显示系统中全部Android平台:   android list targets   2. 显示系统中全部AVD(模拟器):   android list avd   3. 创建AVD(模拟器):   android create avd --name 名称 --target 平台编号   4. 启动模拟器:   emulator -avd 名称 -sdcard ~/名称.img (-skin 1280x800)   5. 删除AVD(模拟器):   android delete av

我的Android进阶之旅------&amp;gt;Android中通过adb shell input来模拟滑动、按键、点击事件

今天在维护公司的一个小项目的时候,发现按公司手机的某个物理按键,激活相应的Service后,会在屏幕上模拟的点击了屏幕的某个坐标点.好家伙,原来是之前该项目的版本是按这个物理按键后,会弹出一个对话框,提示用户需要打开某些服务,然后出于良好的用户体验,直接模拟点击事件,点击该对话框,不让用户做多余的操作. 但是后期版本的改动,该功能不需要了,但是代码可能没有改动完全,因此出现了上述bug.查看代码发现,原来是执行了下面的代码才模拟出在屏幕上的点击事件. Runtime.getRuntime().e