Ubuntu - Hata: SD kart oluşturulamadı


84

SD karta yazmakla ilgili çok sayıda gönderi görüyorum, ancak sorunumun farklı olduğuna inanıyorum. Bir AVD oluşturma işlemi sırasında SD kart oluşturamıyorum.

Başlangıçta bunu yapmak için Android SDK ve AVD Yöneticisini kullanmayı denedim,
Ad : my_avd
Hedef : Android 2.2 - API Seviye 8
SD Kart : Boyut: 1024 MiB
Cilt : Yerleşik: Varsayılan (HVGA)
Donanım : Özellik: Soyutlanmış LCD Yoğunluk, Değer: 160

Bu, şu mesajı içeren bir pencere açar:
"AVD 'my_avd' oluşturmanın sonucu:
Hata: SD kart oluşturulamadı."

İşlemi komut satırından tekrar etmeye çalıştım ve benzer bir hata aldım:

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'ı kullanma talimatlarını izlemeye çalışmak da eşit derecede verimsizdi; Sanırım temel linux deneyimi eksikliğim burada bana bir sorun yaratıyor olabilir. Mksdcard'ı kullanmaya çalıştığımda, sadece dosyayı veya dizini bulamadığını bildiriyor. Mksdcard aracı linux'ta bu şekilde kullanılabilir mi?

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 araçları dizinini PATH değişkenime ekledim, ancak eksik olduğum başka bir şey var gibi hissediyorum. Belki bir çeşit erişim hakkı?

Android komutunu sudo ile çalıştırmaya çalışmak da yardımcı olmadı:

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 ve ADT eklentisini kurmayı ve yöneticiyi oradan boşuna çalıştırmayı bile denedim. Herhangi bir ipucu çok takdir edilecektir. Biraz acemi bir Linux kullanıcısı olduğuma dair gelişmiş uyarı, bu yüzden kontrol edilmesi çok basit bir şey gibi görünse bile, yine de kaçırabilirdim.


@Alex Pritchard: Muhtemelen 1024M sahte SD karta ihtiyacınız yok. Bunun yerine 32M'yi deneyin ve daha iyi şansınız olup olmadığına bakın.
CommonsWare

@CommonsWare Ne yazık ki, 32M SD kart hala oluşturulamıyor. :(
Alex Pritchard

@Alex Pritchard: Bu oldukça tuhaf. Görüntüler, AVD'nin ( ~/.android/avd/whateveryoucalledit/) geri kalanıyla aynı dizinde oluşturulur , bu nedenle bir SD kart ile bir AVD'yi nasıl oluşturacağınızı ancak bir AVD'yi nasıl oluşturacağınızı tam olarak anlayamıyorum.
CommonsWare

@CommonsWare Biraz daha okudum ve bir şeyler bulabileceğimi düşünüyorum. 64-bit linux kurulumunu kullandığım ve ia32-lib'leri kurmam gerekebileceğinden bazı problemler olabileceğinden şüpheleniyorum. Eve döndüğümde bunu deneyeceğim ve yardımcı olup olmayacağına bakacağım.
Alex Pritchard

@Alex Pritchard: Evet, bunlara ihtiyacınız olduğuna inanıyorum. Aslında onlarsız çalışmasına şaşırdım. Android'in 64 bit Ubuntu kurulumumda çalışmasını sağlamak için bazı hareketlerden geçmek zorunda kaldım, ancak bu yeterince uzun zaman önceydi, ayrıntıları unuttum.
CommonsWare

Yanıtlar:


101

Ben de sorunu buldum. Varsayılan olarak ia32-libs paketinin kurulu olmadığı 64 bit Linux kurulumu kullanıyordum. Mksdcard yardımcı programı bu paket olmadan çalışmayacaktır. Kurduktan sonra, AVD yöneticisini kullanarak AVD'yi sorunsuz bir şekilde oluşturabildim.


1
Teşekkürler ubuntu 12.04 x64, sorunu çözdü. Sadece bu ia32-lib'lerin yaklaşık 260mb olduğunu belirtmek isterim
yine deanothercoder

43
Evet! Bütün o korkunç 240 bağımlılık paketi olmadan yolu buldum! ia32-libsKurulum yerine libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386. Bilgisayarımı (ve umarım başkalarını) tüm çöplerden kurtaran bu adama şeref: stackoverflow.com/a/10473415/998772 PS Linux Mint 13 kullanıyorum
pavel_kazlou

4
Fedora'da,dnf install glibc.i686 libstdc++.i686
Dominic Cleal

teşekkür ederim. Ubuntu 14.04 LTS amd kullanıyorum ve sorunu çözüyor. @Pavel_kazlou'nun önerdiği gibi ayrı paketler yükledim
Joao Polo

1
@nimrodm Bu yazıdaki etkinliğe sürekli şaşırıyorum (bugüne kadarki en popüler SO yazım, hah).
Alex Pritchard

80

Ubuntu 16.04 LTS x64'te, Android Studio 2.1 (2.3.3'te de test edilmiştir) kullanılarak bir terminalden çalıştırın:

sudo apt-get install lib32stdc++6

SDK'yı manuel olarak yükledim (Android Studio olmadan) ve bu benim için çalıştı.
CTodea

1
Bunun yanı sıra, emülatörü çalıştırmak için ~ / Android / Sdk / emulator / lib64 / libstdc ++ / libstdc ++. So.6 ve libstdc ++. So.6.0.18'i başka bir şeye yeniden adlandırmak zorunda kaldım. Sadece opengl tough olmadan çalıştırabildim. --------------- ./emulator @ Nexus_4_API_23 çekilebilir getGLES2ExtensionString oluşturamadı: GLES 2.x Pbuffer oluşturulamadı! GLES 2.x uzantı dizisi elde edilemedi! Öykünülmüş framebuffer öykünücüsü başlatılamadı: HATA: OpenglES öykünmesi başlatılamadı, devre dışı bırakmak için '-gpu off' kullanın.
Francisco Junior

1
Bingo. Ubuntu 17.04.
piratemurray

22

Senin gibi aynı hatayı aldım ve onu yeni çözdüm, bu yüzden belki size yardımcı olabilir (yine de hatanızın benim gibi aynı sorundan kaynaklandığını düşünmüyorum).

../Tools içindeki tüm araçların devreden çıkarma iznine sahip olmadığını buldum, bu yüzden

chmod -R 777 ../tools

komut satırından ve sonunda çalışıyor


1
Bir yanıta katkıda bulunduğunuz için teşekkür ederiz. Stack Overflow, yanıtınızın okunabilirliğini artırmak için biçimlendirme sağlar. Kabuk komutunu tanımlamak ve onu diğer metninizden ayırmak için kod biçimlendirmesini kullanabilirsiniz.
this.josh

Çalışıyor, ancak bunun sonucu .txt, .xmldosyalar vb. Yürütülebilir izne sahip ... ilgili dosyaları bilmek güzel olurdu
funkybro

10

Diğerlerinin zaten yazdığı gibi, sorun şu ki, Linux dağıtımınız 64 bitlik bir dağıtımdır ve şu anda Android Sanal Cihazının ( AVD ) düzgün çalışması için x86 kitaplığına ihtiyacı vardır .

Birisi ia32-libs yüklemeyi önerdi . Ancak, Ubuntu 14.04 LTS'de bu kitaplığı bulamazsınız. : Ben bu alternatif kütüphanelerini kullanarak çözüldü lib32z1 , lib32ncurses5 , lib32bz2-1.0 ve lib32stdc ++ .

sudo apt-get update
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++

3
İhtiyacım olan tek şey lib32stdc ++ 6 idi.
Big McLargeHuge

6

Ben de aynı problemle karşılaştım. SDK araçlarının HİÇBİRİ, ia32-libs yüklemeden 64-bit Ubuntu üzerinde çalışmaz (ÖRNEK: sudo apt-get install ia32-libs).


5

Temel işletim sistemi ve ubuntu'da çözümler aşağıdaki paketleri kurmaktı

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

Bu benim için Kubuntu 17.04'te çalıştı. Ancak libstdc ++ yine de kaldırılmalıdır.
Avamander

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

Bu sorunu buldum ve önce bir yol buldum:

cd /home/alex/android-sdk-linux_x86/tools/

o zaman şunu yaz:

sudo chmod 755 mksdcard
mksdcard 1024M ./sdcard.iso
sudo android create avd -n my_avd -t 1 -c 1024M

İşe yaramalı :)


4

Kali, Debian Jessie (veya Ubuntu 13.10+) kullanıyorsanız, deneyin

sudo apt-get install lib32stdc ++ 6

yukarıda bahsedilen ia32-libs yerine.


4
sudo apt-get install lib32stdc++6

Bundan sonra aşağıdaki hataları alabilirsiniz

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

Bunları çözmek için bu 3 komutu kullanın

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

3

Ayrıca bu sorunu yaşadım ve i386 paketini yükledikten sonra Android emülatörüm için bir SD kart oluşturabildim iki adımda yapmak zorunda kaldım

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

Bu bittikten sonra, SD kart takılı bir emülatör oluşturabildim


2

Farklı bir sorunum vardı: platform araçları yolumdaydı ama araçlar yoktu. Yani, SDCard görüntüsünün yaratılmaması dışında her şey çalıştı. Eclipse'de avd'yi oluşturduğumda ve sanal cihaz gerçekten küçük bir sd kartla yaratıldığında, uygulama yüklemesinde sürekli olarak medya mevcut değil hatasını atmasına neden olan sanal aygıt oluşturuldu.


1

32bit Ubuntu kullanırken farklı bir sorun yaşadım. Mksdcard'ı elle çalıştırmayı denediğimde bir dosya bulunamadı hatası alıyordum.

Sorun open-jre / jdk idi. Oracle java'yı yükledim ve sorun giderildi. Maalesef artık oracle java'yı apt / synaptic aracılığıyla kuramazsınız ve bazı ekstra çemberlerden geçmek zorunda kalırsınız:

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


1

Debian testinde ./tools/mksdcards'ı çalıştırmayı denediğimde şu hatayı aldım:

error while loading shared libraries: libstdc++.so.6: 
cannot open shared object file: No such file or directory

Lib32stdc ++ 6'nın yüklenmesi sorunu çözer ve avd.


0

MyOS, Oracle Unbreakable Linux 6'dır - bu sorunu çözmek için libstdc ++ - 4.4.6-3.el6.i686 paketini kurmam gerekiyordu.


0

Çok fazla yükleme yaptıktan ve herhangi bir sonuç alamadan bunu buldum ve işe yaradı.

Bunun nedeni, içindeki bazı yürütülebilir dosyaların sdk/toolsyürütülememesidir. Android Studio ve Android SDK klasörlerinize gidin ve bu komutla tüm dizin ve dosyaları yürütülebilir hale getirin:

chmod +x -R *

Bu konunun 9 yıl sonra hala gündeme gelmesi beni çıldırtıyor. İyi zamanlar Deneyimlerinizi paylaştığınız için teşekkürler.
Alex Pritchard

-1

Android sdk klasörünü ana klasöre taşımayı deneyin. İşe yarıyor.


-1

Ben de aynı sorunu yaşadım. Sorun gidermeden sonra, bunun Windows'umun 32bit olması ve mksdcard'ımın sadece 64 bit ile uyumlu olması nedeniyle olduğunu öğrendim. Sonra 32 bitlik bir mksdcard'ı tools klasörüne kopyaladım ve eskisini sildim. Sorunumu çözdü.


-1

Pencerelerde aynı sorunu yaşayanlar için. Benim için mksdcard.exe aracının başarıyla çalışamamasıydı. Mksdcard.exe gibi bazı SDK araçları Microsoft Visual C ++ çalışma zamanı gerektirir. Bu yüzden Sistem özelliklerinize gidin ve Sistem türünüzü kontrol edin:

görüntü açıklamasını buraya girin

Ardından, sistem türünüze bağlı olarak (benim için x64'tü) https://visualstudio.microsoft.com/downloads/ bağlantısından Visual Studio 2019 için en son Microsoft Visual C ++ Yeniden Dağıtılabilir sürümünü indirin / güncelleyin.

görüntü açıklamasını buraya girin

Microsoft Visual C ++ yükledikten sonra sorunum çözüldü. AVD'yi başarıyla oluşturabildim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.