Ubuntu - 错误:无法创建SD卡

时间:2010-10-07 03:24:54

标签: android linux ubuntu

我看到很多关于写入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用户,所以即使看起来像是一个明显的事情要检查,我仍然可以错过它。

谢谢!

19 个答案:

答案 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,并且必须跳过一些额外的环节:

https://github.com/flexiondotorg/oab-java6

答案 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 ++运行时。因此,请转到系统属性并检查系统类型:

enter image description here

然后根据您的系统类型,(对于我来说是x64)从链接https://visualstudio.microsoft.com/downloads/下载/更新用于Visual Studio 2019的最新Microsoft Visual C ++ Redistributable

enter image description here

安装Microsoft Visual C ++后,我的问题已解决。我能够成功创建AVD。

答案 18 :(得分:-1)

尝试将android sdk文件夹移动到主文件夹。它有效。