首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Linux中使用"execve“来运行android模拟器的进程,但是"avd”路径是错误的?

问在Linux中使用"execve“来运行android模拟器的进程,但是"avd”路径是错误的?
EN

Stack Overflow用户
提问于 2012-09-05 15:16:40
回答 1查看 485关注 0票数 0

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

代码语言:javascript
复制
/*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: Could not open: /tmp/.android/avd/new1.ini

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

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

EN

回答 1

Stack Overflow用户

发布于 2012-09-05 18:48:58

您传递了错误的envp

代码语言:javascript
复制
const char *temp = getenv("ANDROID_AVD_HOME");
envp[0] = "ANDROID_AVD_HOME=" + temp;
envp[1] = "PATH=" + getenv("PATH");
envp[2] = NULL;

用安全策略替换+

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12276335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档