我看到很多关于写入SD卡的帖子,但我相信我的问题不同。在构建AVD的过程中,我无法创建SD卡。
我最初尝试使用Android SDK和AVD Manager来执行此操作,然后选择
名称:my_avd
目标:Android 2.2 - API级别8
SD卡:尺寸:1024 MiB
皮肤:内置:默认(HVGA)
硬件:属性:抽象LCD密度,值:160
这会弹出一个窗口,其中包含以下消息:
“创建AVD'my_avd'的结果:
错误:无法创建SD卡。“
我尝试从命令行重复此过程,收到类似的错误:
alex@alex-desktop:~$ android create avd -n my_avd -t 1 -c 1024M
Android 2.2 is a basic Android platform.
Do you wish to create a custom hardware profile [no]no
Error: Failed to create the SD card.
尝试遵循使用mksdcard的说明同样没有效果;我认为我基本缺乏linux经验可能会让我在这里遇到问题。当我尝试使用mksdcard时,它只是报告它找不到文件或目录。 mksdcard工具是否可以在linux中以这种方式使用?
alex@alex-desktop:~$ mksdcard 1024M ./sdcard.iso
bash: /home/alex/android-sdk-linux_x86/tools/mksdcard: No such file or directory
alex@alex-desktop:~$ sudo android create avd -n my_avd -t 1 -c 1024M
我已经将android工具目录添加到我的PATH变量中,但我觉得显然还有其他一些我不知道的东西。也许某种访问权限?
尝试使用sudo运行android命令似乎也没有帮助:
alex@alex-desktop:~/android-sdk-linux_x86/tools$ sudo ./android create avd -n my_avd -t 1 -c 1024M
Android 2.2 is a basic Android platform.
Do you wish to create a custom hardware profile [no]no
Error: Failed to create the SD card.
我甚至尝试安装Eclipse和ADT插件并从那里运行管理器无济于事。任何提示将非常感激。高级警告,我有点像新手Linux用户,所以即使看起来像是一个明显的事情要检查,我仍然可以错过它。
谢谢!
答案 0 :(得分:101)
所以我发现了问题。我使用的是64位Linux安装,默认情况下没有安装ia32-libs软件包。没有此软件包,mksdcard实用程序将无法运行。安装后,我能够使用AVD管理器构建AVD而没有任何问题。
答案 1 :(得分:81)
在Ubuntu 16.04 LTS x64上,使用Android Studio 2.1(也在2.3.3上测试过),从终端运行:
sudo apt-get install lib32stdc++6
答案 2 :(得分:22)
我遇到了和你一样的错误,我刚解决了,所以也许它可以帮助你(虽然我不认为你的错误是由像我这样的问题引起的)。
我发现../tools中的所有工具都没有执行权限,所以我使用了
chmod -R 777 ../tools
从命令行,它最终工作
答案 3 :(得分:10)
正如其他人已经写过的,问题是您的Linux发行版是 64位,并且目前 Android虚拟设备( AVD < / strong>)需要 x86 库才能正常工作。
有人建议安装 ia32-libs 。但是,在 Ubuntu 14.04 LTS 中,您无法找到此库。 我解决了使用这些替代库: lib32z1 , lib32ncurses5 , lib32bz2-1.0 和 lib32stdc ++ 。
sudo apt-get update
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++
答案 4 :(得分:6)
我刚遇到同样的问题。没有安装ia32-libs就可以在64位Ubuntu上运行任何SDK工具(示例:sudo apt-get install ia32-libs)。
答案 5 :(得分:5)
在基本操作系统和ubuntu中,解决方案是安装以下软件包
sudo apt-get install lib32ncurses5 lib32z1
sudo apt-get install libgcc1:i386
答案 6 :(得分:4)
alex@alex-desktop:~$ mksdcard 1024M ./sdcard.iso
bash: /home/alex/android-sdk-linux_x86/tools/mksdcard: No such file or directory
alex@alex-desktop:~$ sudo android create avd -n my_avd -t 1 -c 1024M
我发现了这个问题&amp;我找到了办法 第一:
cd /home/alex/android-sdk-linux_x86/tools/
然后写下:
sudo chmod 755 mksdcard
mksdcard 1024M ./sdcard.iso
sudo android create avd -n my_avd -t 1 -c 1024M
它应该工作:)
答案 7 :(得分:4)
如果您使用的是Kali,Debian Jessie(或Ubuntu 13.10+),请尝试
sudo apt-get install lib32stdc ++ 6
而不是上面提到的ia32-lib。
答案 8 :(得分:4)
sudo apt-get install lib32stdc++6
在此之后您可能会遇到以下错误
Cannot launch AVD in emulator.
Output:
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
X Error of failed request: GLXBadContext
Major opcode of failed request: 154 (GLX)
Minor opcode of failed request: 6 (X_GLXIsDirect)
Serial number of failed request: 49
Current serial number in output stream: 48
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
X Error of failed request: GLXBadContext
Major opcode of failed request: 154 (GLX)
Minor opcode of failed request: 6 (X_GLXIsDirect)
Serial number of failed request: 49
Current serial number in output stream: 48
libGL error: unable to load driver: i965_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i965
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
emulator: WARNING: VM heap size set below hardware specified minimum of 228MB
X Error of failed request: BadValue (integer parameter out of range for operation)
emulator: WARNING: Setting VM heap size to 384MB
Major opcode of failed request: 154 (GLX)
Minor opcode of failed request: 24 (X_GLXCreateNewContext)
Value in failed request: 0x0
Serial number of failed request: 33
Current serial number in output stream: 34
QObject::~QObject: Timers cannot be stopped from another thread
使用这3个命令解决这些问题
mv ~/Android/Sdk/tools/lib64/libstdc++/libstdc++.so.6{,.bak}
mv ~/Android/Sdk/tools/lib64/libstdc++/libstdc++.so.6.0.18{,.bak}
ln -s /usr/lib/libstdc++.so ~/Android/Sdk/tools/lib64/libstdc++/**
答案 9 :(得分:3)
也遇到了这个问题,在安装了i386软件包之后,我就可以为我的Android模拟器创建一张SD卡了 我不得不做两个步骤
sudo apt-get update
sudo apt-get install ia32-libs
完成此操作后,我能够创建一个附带SD卡的模拟器
答案 10 :(得分:2)
我正在运行Fedora 64并遇到同样的问题。这个页面上的信息帮助了我。
http://iexcel.wordpress.com/2010/01/25/ia32-libs-for-android-sdk-on-fedora-12-x86_64/
答案 11 :(得分:2)
我有一个不同的问题:平台工具在我的道路上,但工具不是。所以,除了没有创建SDCard图像之外,一切正常。当我在eclipse中创建avd并且使用非常小的SD卡创建虚拟设备时,没有注意到这一点,导致它在应用程序安装时不断抛出媒体不可用的错误。
答案 12 :(得分:2)
在debian测试中,当我试图运行./tools/mksdcards时,我收到错误:
error while loading shared libraries: libstdc++.so.6:
cannot open shared object file: No such file or directory
安装lib32stdc ++ 6可以解决问题,并且可以创建avd。
答案 13 :(得分:1)
使用32位Ubuntu我遇到了另外一个问题。当我试图手动运行mksdcard时,我发现文件未找到错误。
问题是open-jre / jdk。我安装了oracle java并修复了问题。不幸的是,你不能再通过apt / synaptic安装oracle java,并且必须跳过一些额外的环节:
答案 14 :(得分:0)
MyOS是Oracle Unbreakable Linux 6 - 为了解决这个问题,我必须安装libstdc ++ - 4.4.6-3.el6.i686包。
答案 15 :(得分:0)
我遇到了同样的问题。排除故障后,我才知道,这是因为我的Windows是32位,而我的mksdcard只与64位兼容。然后我只是将一个32位的mksdcard复制到tools文件夹,并删除了旧的。它解决了我的问题。
答案 16 :(得分:0)
经过大量安装,但没有得到任何结果,我发现了这一点,并且行得通。
发生这种情况是因为无法执行sdk/tools
中的某些可执行文件。转到您的Android Studio和Android SDK文件夹,并通过以下命令使所有目录和文件可执行:
chmod +x -R *
答案 17 :(得分:-1)
针对在Windows上遇到相同问题的人们。 对我来说是因为mksdcard.exe工具无法成功运行。 某些SDK工具(例如mksdcard.exe)需要Microsoft Visual C ++运行时。因此,请转到系统属性并检查系统类型:
然后根据您的系统类型,(对于我来说是x64)从链接https://visualstudio.microsoft.com/downloads/下载/更新用于Visual Studio 2019的最新Microsoft Visual C ++ Redistributable
安装Microsoft Visual C ++后,我的问题已解决。我能够成功创建AVD。
答案 18 :(得分:-1)
尝试将android sdk文件夹移动到主文件夹。它有效。