Android SDK на 64-розрядній машині Linux


97

Чи можливо розробити за допомогою Android SDK на 64-розрядній машині Linux. Наявні завантаження SDK видаються лише для 32-бітних версій Linux.

Відповіді:


42

Так. Потрібно встановити бібліотеки ia32. Перегляньте розділ усунення несправностей Ubuntu Linux .

apt-get install ia32-libs
apt-get install sun-java6-jdk

5
ia32-libs не встановлюватиметься на моїй машині. Дивіться відповідь Нотца нижче.
Меттью Гілліард

5
Це підходить лише для версій Ubuntu до того, як вони внесли підтримку Multiarch. Правильний підхід тепер полягає у встановленні правильних пакетів i386
Jacob

Іронічно, що "правильна" відповідь правильна лише для тієї фракції 64-бітних машин, на яких працює Ubuntu / Gnome. Фрагментація Linux говорить про те, що "правильна" відповідь є більш загальною або комбінацією всіх наведених нижче частково правильних відповідей. Я, наприклад, віддаю перевагу більш узагальненій відповіді, оскільки існує занадто багато можливих варіацій та оновлень, щоб бути впевненим у повноті та не застарілості. Моє голосування було б за приємне "Так, це можливо. RTFM та встановіть 32-розрядні / i386 пакети". FYI - вони не виправлять це, оскільки хочуть, щоб ми використовували Android Studio замість цього.
Синтія V

Більше немає розділу щодо усунення несправностей на цьому посиланні. Це стосується поточних інструкцій щодо встановлення: developer.android.com/studio/install.html виберіть "linux" у верхньому правому верхньому вікні вибору платформи.
amotzg

182

У (K) Ubuntu потрібні наступні 32-бітні пакети:

sudo apt-get install libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386

для запуску емулятора вам потрібен додатковий пакет:

sudo apt-get install libsdl1.2debian:i386

12
Чудово ДЯКУЄМО за цю відповідь, ви врятували мій комп'ютер від встановлення ia32-libs (радиться скрізь), що разом із згаданими вами пакетами приносить вагон інших марних залежностей. Ваше рішення працювало на моєму Linux Mint 13.
pavel_kazlou

Погодьтеся з коментарем вище, ubuntu 12.04 64bit
Matthew Gilliard

4
Працював для мого Ubuntu 12.10 64bit. Дуже дякую!

1
У 64-бітного Ubuntu 13.04 все ще є така ж проблема з ADT SDK, і це рішення також працювало для мене.
GrandOpener

2
Працює і для Ubuntu 14.04 64bit. Дуже дякую!
Ленглі

34

Android SDK вимагає:

  • Fedora 17 64bit з Android SDK:

    sudo yum install glibc.i686 zlib.i686 libstdc++.i686 ncurses-libs.i686
  • Fedora 20 64bit з Android SDK

    sudo yum install glibc zlib libstdc++ ncurses-libs mesa-libGL-devel adb

1
спасибі за інформацію про Fedora. в офіційній допомозі є лише перелічені пакети ubuntu
gspatel

2
Коли я вперше спробував це, я отримав "Помилка: захищені версії з декількома версіями: libstdc ++ - 4.7.2-2.fc17.i686! = Libstdc ++ - 4.7.0-5.fc17.x86_64". Виправлено за допомогою yum upgrade libstdc ++
pinoyyid

1
командний рядок, який використовується для Fedora 17, досі працює для fedora 21
Sombriks

@MariuszS у цьому другому сценарії ви можете уточнити, що ви маєте на увазі під "64-бітним SDK для Android". Я розумію, що в Android SDK є 32-бітні двійкові файли, саме тому у нас в першу чергу ця проблема.
Карлос Макасает

Я не впевнений, але, напевно, деякий час тому існували дві версії (в комплекті з затемненням 64bit, певно). Відповідь оновлено
MariuszS

15

Для Debian Wheezy вам потрібно ввімкнути мультиарх і потім встановити залежні бібліотеки, як зазначено в інших відповідях або за потребою бінарних файлів з каталогу інструментів або платформи-інструментів:

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386

Для подальшої роботи libs перевірити ldd на посилання .so-файлів.

платформи-інструменти $ ldd adb                       
    linux-gate.so.1 => (0xf77bb000)
    librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xf779b000)
    libncurses.so.5 => не знайдено
    libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xf7781000)
    libstdc ++. so.6 => не знайдено
    libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xf775b000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf773e000)
    libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xf75db000)
    libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xf75d6000)
    /lib/ld-linux.so.2 (0xf77bc000)

Тому продовжуйте встановлювати libncurses5: i386 та libstdc ++ 6: i386, щоб мати можливість запускати

платформа-інструменти $ ./adb 
Android Debug Bridge версія 1.0.31
...

Дякую @ user2255304! Це працювало для мене. Намагався встановити Android Studio і android-studio/sdk/tools/mksdcardбув 32-бітним виконуваним файлом. Виконані вище дії та встановлення libc6:i386та libstdc++6:i386. Бінарний файл зараз працює нормально.
Rajkumar S

9

Для Ubuntu 13.1 ia32-libs більше не доступний. Отже, ви можете спробувати це:

sudo apt-get install lib32z1 lib32ncurses5 lib32stdc++6

Ці назви пакетів також працюють для Ubuntu 14.04. Мені здається, це "правильний" підхід, оскільки ці пакети походять від репо архітектури amd64. У попередньому коментарі пропонується встановити: 386 пакунків змішує пакети архітектури, що здається ризикованим.
Дон Парк

@DonPark Ні, це не ризиковано. Його називають мультиархом.
Лео Лам

5

У CentOS 6.2 я отримав це з наступними:

yum install glibc.i686 glibc-devel.i686 libstdc++.i686 zlib-devel.i686 ncurses-devel.i686 libX11-devel.i686 libXrender.i686 libXrandr.i686


3
Працює і на CentOS 7!
Філіп Девід


4

Для тих, хто використовує Slackware, натисніть тут.

Я спробував це з поточним і він працює.

Коротше кажучи, вам потрібно включити 32-бітну підтримку, встановивши багатолібкові пакети.

Кроки:

1) Завантажте пакет:

> wget -np -nH -r -A txz,tgz \
> http://slackware.com/~alien/multilib/14.0/

2) встановити пакети:

~/multilib$ \
> cd \~alien/multilib/14.0/
~/multilib/~alien/multilib/14.0/$ \
> su -c "upgradepkg --reinstall --install-new *.t?z"

3) встановити пакети сумісності:

~/multilib/~alien/multilib/14.0/$ \
> su -c "upgradepkg --reinstall --install-new *-compat32/*/*.t?z"

Перезавантажте систему та вуаля.




0

Ви можете створити sdk самостійно. Я спробую. 32-розрядна версія дуже повільна.


0

Презумпція: встановлена ​​32-бітна версія Android SDK

На моїй 64-бітній ОС Ubuntu 12 мені не довелося встановлювати жоден пакет, згаданий у попередніх коментарях. Встановіть наступне за допомогою Android SDK Manager-
Під Tools:
Android SDK Tools
Android SDK Platform-tools
Latest Android SDK Build-tools

Відповідно до останнього API Android (у моєму випадку Android 4.3 (API 18)):
SDK Platform
ARM EABI v7a System Image

Під Extras:
Android Support Library

Увага! Раніше я намагався використовувати ia32-libsпакет. Він встановлений успішно, і я зміг запустити свої програми для Android. Однак, якби я перезапустив машину, вона ніколи не завантажиться. Тому я пропоную утриматися від встановлення ia32-libsпакету. Якщо це працювало для вас, то чудово. Можливо, це була проблема, обмежена моїм ПК тоді.


0

Невеликий поворот у вищезазначених питаннях Q: A я запускаю Debian Wheezy (7.0) на 64-бітовому ноутбуці System76, я вже ввімкнув мультиарх і більшість вроджених інструментів Android, здавалося, працює нормально ... поки я не спробував створити додаток. Збірка не вдалася, оскільки потрібна одна з утиліт ресурсів (32-бітний) libz.so.1.

apt-get install lib32z1

... виправили це для мене.



0

Для користувачів Arch:
Вам потрібно встановити пакети lib32-gcc-libs та lib32-ncurses, які знаходяться у сховищі Multilib. (Що потрібно активувати )

pacman -S lib32-gcc-libs  
pacman -S lib32-ncurses

1
"пакет не знайдено"
fungusanthrax
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.