Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
执行此方法后出现环境null public静态字符串[]getAdbLogCat(){ 试一试{ 弦线; ArrayList arrList=新的ArrayList(); 进程p=Runtime.getRuntime().exec(“D:/androidsoftware/android sdk/platform tools/adb shell logcat”); BufferedReader br=新的BufferedReader(新的InputStreamReader(p.getInputStream()); 而((line=br.readLine())!=null){ 系统输出打印项次(行); Log.e(“ADB测试”,第行); } 返回(字符串[])arrList.toArray(新字符串[0]); }捕获(IOE异常){ 系统错误println(e); e、 printStackTrace(); 返回新字符串[]{}; } }_Android_Adb - Fatal编程技术网

执行此方法后出现环境null public静态字符串[]getAdbLogCat(){ 试一试{ 弦线; ArrayList arrList=新的ArrayList(); 进程p=Runtime.getRuntime().exec(“D:/androidsoftware/android sdk/platform tools/adb shell logcat”); BufferedReader br=新的BufferedReader(新的InputStreamReader(p.getInputStream()); 而((line=br.readLine())!=null){ 系统输出打印项次(行); Log.e(“ADB测试”,第行); } 返回(字符串[])arrList.toArray(新字符串[0]); }捕获(IOE异常){ 系统错误println(e); e、 printStackTrace(); 返回新字符串[]{}; } }

执行此方法后出现环境null public静态字符串[]getAdbLogCat(){ 试一试{ 弦线; ArrayList arrList=新的ArrayList(); 进程p=Runtime.getRuntime().exec(“D:/androidsoftware/android sdk/platform tools/adb shell logcat”); BufferedReader br=新的BufferedReader(新的InputStreamReader(p.getInputStream()); 而((line=br.readLine())!=null){ 系统输出打印项次(行); Log.e(“ADB测试”,第行); } 返回(字符串[])arrList.toArray(新字符串[0]); }捕获(IOE异常){ 系统错误println(e); e、 printStackTrace(); 返回新字符串[]{}; } },android,adb,Android,Adb,执行此方法后出现环境null。我正在emulator中运行此方法。如果我要在mobile中运行,那么adb路径将是什么?我的要求是读取adb日志并将崩溃数据保存到表中。我的android sdk位于d驱动器中。或者是否有其他方法从android系统日志获取我的应用程序崩溃日志 您不能从在模拟器上运行的应用程序中运行计算机上的可执行程序。您只能运行位于仿真器自身空间中的程序。仿真器就像一个实际的设备,你永远不会期望一个设备到达它的外部来执行其他的过程。你需要一个桥来从你的android应用程序联系

执行此方法后出现环境null。我正在emulator中运行此方法。如果我要在mobile中运行,那么adb路径将是什么?我的要求是读取adb日志并将崩溃数据保存到表中。我的android sdk位于d驱动器中。或者是否有其他方法从android系统日志获取我的应用程序崩溃日志


您不能从在模拟器上运行的应用程序中运行计算机上的可执行程序。您只能运行位于仿真器自身空间中的程序。仿真器就像一个实际的设备,你永远不会期望一个设备到达它的外部来执行其他的过程。

你需要一个桥来从你的android应用程序联系主机环境

样本项目:

可以使用该库中的新端点扩展函数。并从应用程序中调用

带有curl的示例请求:

public static String[] getAdbLogCat() {
    try {
        String line;
        ArrayList<String> arrList = new ArrayList<String>();
        Process p = Runtime.getRuntime().exec("D:/androidsoftware/android sdk/platform-tools/adb shell logcat");
        BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));

        while ((line = br.readLine()) != null) {
            System.out.println(line);
            Log.e("ADB TEST",line);
        }

        return (String[])arrList.toArray(new String[0]);
    } catch (IOException e) {
        System.err.println(e);
        e.printStackTrace();
        return new String[]{};
    }
}
这在某些有限的上下文中使用,例如当您在连续服务器上运行时,您需要一些实用功能来与主机联系(用于屏幕截图、报告或其他内容)

curl -H "Content-Type: application/json" -X POST -d '{"tag":"sample tag value","trace":"TooAwesomeException foo bar"}' http://localhost:9001/screenshot