当前位置: 首页>>技术教程>>正文


Ubuntu-错误:无法创建SD卡

, ,

问题描述

我看到很多关于写入SD卡的帖子,但是我相信我的问题有所不同。在建立AVD的过程中,我无法创建SD卡。

我最初尝试使用Android SDK和AVD Manager来执行此操作,选择名称:my_avd目标:Android 2.2-API级别8 SD卡:大小:1024 MiB皮肤:Built-In:默认(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时,它只是报告它找不到文件或目录。是否可以在Linux中以这种方式使用mksdcard工具?

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 tools目录添加到了我的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的新手,因此即使看起来像no-brainer明显的检查对象,我仍然可能会错过它。

 

最佳解决办法

所以我发现了问题。我使用的是64位Linux安装,默认情况下未安装ia32-libs软件包。没有此软件包,mksdcard实用程序将无法运行。安装后,我可以使用AVD管理器毫无问题地构建AVD。

 

次佳解决办法

在使用Android Studio 2.1(也在2.3.3上进行测试)的Ubuntu 16.04 LTS x64上,从终端运行:

sudo apt-get install lib32stdc++6

 

第三种解决办法

我遇到了与您相同的错误,而我刚刚解决了它,因此也许可以为您提供帮助(尽管我不认为您的错误是由与我相同的问题引起的)。

我发现../tools中的所有工具均无权执行,因此我使用了

chmod -R 777 ../tools

从命令行开始,它终于可以工作了

 

第四种办法

正如其他人已经写过的那样,问题在于您的Linux发行版是64位发行版,目前,Android虚拟设备(AVD)需要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++

 

第五种办法

我只是遇到了同样的问题。如果没有安装ia32-lib,则所有SDK工具都无法在64位Ubuntu上运行(示例:sudo apt-get安装ia32-libs)。

 

第六种办法

在基本OS和ubuntu中,解决方案是安装以下软件包

sudo apt-get install lib32ncurses5 lib32z1
sudo apt-get install libgcc1:i386

 

第七种办法

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

我发现了这个问题我首先找到一种方法:

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

它应该工作:)

 

第八种办法

如果您使用的是Kali,Debian Jessie(或Ubuntu 13.10+),请尝试

须藤apt-get安装lib32stdc ++ 6

而不是上面提到的ia32-libs。

 

第九种办法

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++/**

 

第十种办法

也有这个问题,安装i386软件包后,我能够为我的Android模拟器创建SD-card,我必须执行两个步骤

sudo apt-get update
sudo apt-get install ia32-libs

完成此操作后,我可以创建一个附加了SD-card的仿真器

参考资料

 

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7466.html,未经允许,请勿转载。