gpt4 book ai didi

android - Linux下使用 "execve"运行android模拟器进程,但 "avd"路径错误?

转载 作者:太空宇宙 更新时间:2023-11-04 04:21:56 25 4
gpt4 key购买 nike

我遇到一个关于运行 android 模拟器的问题,以下是详细信息。非常感谢!

我需要自动运行android模拟器,所以在Linux下倾向于使用execve,源码如下:

/*initailize passed command line\*/

char *binary = (char*)malloc(8*sizeof(char));
char **newargv = (char **)malloc(16*sizeof(char *));

newargv[0] = "/media/career/android/source/out/host/linux-x86/sdk/android-sdk_eng.corey_linux-x86/tools/emulator";
newargv[1] = "-avd";

newargv[2] = "new1";

newargv[3] = "-system";

newargv[4] = "/media/career/android/source/out/target/product/generic/system.img";

newargv[5] = "-ramdisk";

newargv[6] = "/media/career/android/source/out/target/product/generic/ramdisk.img";

newargv[7] = "-data";

newargv[8] = "/media/career/android/source/out/target/product/generic/userdata.img";

newargv[9] = NULL;

/*initialize the env value of new process(emulator) */

const char *temp = getenv("ANDROID_AVD_HOME");

envp[0] = temp;

envp[1] = getenv("PATH");

envp[2] = NULL;

/*main function*/
if (execve (binary, (char **)newargv, (char **)envp) < 0 )

environment variable:
declare -x ANDROID_AVD_HOME="/home/corey/.android/avd"
declare -x PATH="/media/career/android/source/out/host/linux-x86/sdk/android-sdk_eng.corey_linux-x86/platform-tools:/media/career/android/source/out/host/linux-x86/sdk/android-sdk_eng.corey_linux-x86/tools:

控制台显示:PANIC:无法打开:/tmp/.android/avd/new1.ini

我的avd存储路径默认为~/.android/avd。但新进程只能找到根文件系统的路径来读取avd文件,可移植性较差。实际上模拟器的进程已经运行了。我专注于设置环境变量,但失败了。

请问我应该如何设置环境变量?

最佳答案

您传递了错误的环境

const char *temp = getenv("ANDROID_AVD_HOME");
envp[0] = "ANDROID_AVD_HOME=" + temp;
envp[1] = "PATH=" + getenv("PATH");
envp[2] = NULL;

+ 替换为安全 strcat

关于android - Linux下使用 "execve"运行android模拟器进程,但 "avd"路径错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12276335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com