SDK Android trên máy linux 64 bit


97

Có thể phát triển bằng cách sử dụng Android SDK trên máy linux 64 bit không. Các bản tải xuống SDK có sẵn dường như chỉ dành cho phiên bản 32-bit của Linux.

Câu trả lời:


42

Vâng, đúng vậy. Bạn cần cài đặt thư viện ia32. Kiểm tra phần khắc phục sự cố Ubuntu Linux .

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

5
ia32-libs sẽ không cài đặt trên máy của tôi. Xem câu trả lời của notz dưới đây.
Matthew Gilliard

5
Điều này chỉ thích hợp cho các phiên bản Ubuntu trước khi chúng hỗ trợ Multiarch. Cách tiếp cận đúng giờ để cài đặt các gói i386 đúng
Jacob

Thật mỉa mai rằng câu trả lời "đúng" chỉ đúng cho một phần nhỏ các máy 64-bit chạy Ubuntu / Gnome. Sự phân mảnh của Linux cho thấy câu trả lời "đúng" là một câu tổng quát hơn hoặc kết hợp tất cả các câu trả lời đúng một phần sau đây. Tôi vì một người thích câu trả lời tổng quát hơn, vì có quá nhiều biến thể và cập nhật có thể xảy ra để đảm bảo tính hoàn chỉnh và không lỗi thời. Phiếu bầu của tôi sẽ dành cho câu trả lời hay "Có, có thể. RTFM và cài đặt các gói 32-bit / i386.", Câu trả lời theo kiểu nhà cung cấp trung lập. FYI - họ sẽ không sửa vì họ muốn chúng tôi sử dụng Android Studio để thay thế.
Sinthia V

Không có phần khắc phục sự cố trên liên kết này nữa, phần này chuyển đến hướng dẫn cài đặt hiện tại: developer.android.com/studio/install.html chọn 'linux' trên hộp lựa chọn nền tảng trên cùng bên phải.
amotzg

182

Trên (K) Ubuntu, bạn cần các gói 32-bit sau:

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

để chạy trình giả lập, bạn cần gói bổ sung đó:

sudo apt-get install libsdl1.2debian:i386

12
RẤT CẢM ƠN vì câu trả lời này, bạn đã cứu máy tính của tôi khỏi cài đặt ia32-libs (được khuyên ở mọi nơi), điều này cùng với các gói bạn đã đề cập mang lại một đống phụ thuộc vô ích khác. Giải pháp của bạn làm việc cho tôi Linux Mint 13.
pavel_kazlou

Đồng ý với commenter trên, ubuntu 12.04 64bit
Matthew Gilliard

4
Làm việc cho Ubuntu 12.10 64bit của tôi. Cám ơn rất nhiều!

1
Ubuntu 13.04 64 bit vẫn gặp sự cố tương tự với ADT SDK và giải pháp này cũng hoạt động với tôi ở đó.
GrandOpener

2
Cũng hoạt động cho Ubuntu 14.04 64bit. Muchas Gracias!
Langley

34

SDK Android yêu cầu:

  • Fedora 17 64bit với Android SDK:

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

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

1
cảm ơn về thông tin cụ thể của fedora. sự giúp đỡ chính thức chỉ có các gói ubuntu niêm yết
gspatel

2
Khi tôi lần đầu tiên thử điều này, tôi đã gặp phải "Lỗi: Các phiên bản nhiều liên kết được bảo vệ: libstdc ++ - 4.7.2-2.fc17.i686! = Libstdc ++ - 4.7.0-5.fc17.x86_64". Cố định với yum nâng cấp libstdc ++
pinoyyid

1
dòng lệnh được sử dụng cho fedora 17 vẫn hoạt động cho fedora 21
Sombriks

@MariuszS, trong trường hợp thứ hai, bạn có thể làm rõ ý của bạn về "SDK Android 64bit" không. Tôi hiểu rằng SDK Android có các tệp nhị phân 32-bit, đó là lý do tại sao chúng tôi gặp sự cố này ngay từ đầu.
Carlos Macasaet

Tôi không chắc, nhưng có lẽ một thời gian trước đây có hai phiên bản (có lẽ là đi kèm với eclipse 64bit). Câu trả lời được cập nhật
MariuszS

15

Đối với Debian Wheezy, bạn phải bật tính năng đa tìm kiếm và sau đó cài đặt các thư viện phụ thuộc như được liệt kê trong các câu trả lời khác hoặc theo yêu cầu của các tệp nhị phân từ thư mục công cụ hoặc công cụ nền tảng:

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

Để biết thêm libs, hãy kiểm tra với ldd để biết các tệp .so được tham chiếu.

platform-tools $ ldd adb                       
    linux-gate.so.1 => (0xf77bb000)
    librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xf779b000)
    libncurses.so.5 => không tìm thấy
    libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xf7781000)
    libstdc ++. so.6 => không tìm thấy
    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)

Vì vậy hãy tiếp tục cài đặt libncurses5: i386libstdc ++ 6: i386 để có thể chạy được

platform-tools $ ./adb 
Phiên bản Android Debug Bridge 1.0.31
...

Cảm ơn @ user2255304! Điều này đã làm việc cho tôi. Đang cố gắng cài đặt Android Studio và android-studio/sdk/tools/mksdcardcó thể thực thi được 32 bit. Đã làm theo các bước ở trên và cài đặt libc6:i386libstdc++6:i386. Hệ nhị phân hiện đang hoạt động tốt.
Rajkumar S

9

Đối với Ubuntu 13.1 ia32-libs không còn khả dụng nữa. Vì vậy, bạn có thể thử cái này:

sudo apt-get install lib32z1 lib32ncurses5 lib32stdc++6

Các tên gói này cũng hoạt động cho Ubuntu 14.04. Đối với tôi, đây là cách tiếp cận 'đúng' vì các gói này đến từ kho kiến ​​trúc amd64. Nhận xét trước đó gợi ý cài đặt: 386 gói kết hợp các gói kiến ​​trúc có vẻ rủi ro.
Don Park

@DonPark Không, nó không có rủi ro. Nó được gọi là multiarch.
Léo Lam

5

Trên CentOS 6.2, tôi đã làm cho nó hoạt động như sau:

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


3
Hoạt động trên CentOS 7 quá!
Philippe David


4

Đối với những người đang sử dụng Slackware, hãy nhấp vào đây.

Tôi đã thử nó với hiện tại và nó hoạt động.

Tóm lại, bạn cần kích hoạt hỗ trợ 32bit bằng cách cài đặt các gói multilib.

Các bước:

1) Tải xuống gói:

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

2) cài đặt các gói:

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

3) cài đặt các gói tương thích:

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

Khởi động lại hệ thống và thì đấy.



1

Trên Ubuntu 13.10

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0


0

Bạn có thể tự xây dựng sdk. Tôi sẽ thử. Phiên bản 32-bit rất chậm.


0

Giả định: Phiên bản Android SDK 32 bit đã được cài đặt

Trên hệ điều hành Ubuntu 12 64 bit của tôi, tôi không phải cài đặt bất kỳ gói nào được đề cập trong các nhận xét trước. Cài đặt phần sau bằng cách sử dụng Android SDK Manager-
Dưới Tools:
Android SDK Tools
Android SDK Platform-tools
Latest Android SDK Build-tools

Trong API Android mới nhất (trong trường hợp của tôi, Android 4.3 (API 18)):
SDK Platform
ARM EABI v7a System Image

Dưới Extras:
Android Support Library

Cảnh báo- Trước đó tôi đã thử sử dụng ia32-libsgói. Nó đã được cài đặt thành công và tôi có thể chạy các ứng dụng Android của mình. Tuy nhiên, nếu tôi khởi động lại máy, nó sẽ không bao giờ khởi động được. Do đó, tôi khuyên bạn nên hạn chế cài đặt ia32-libsgói. Nếu nó làm việc cho bạn thì tuyệt vời. Có thể đó là một vấn đề bị hạn chế đối với PC của tôi khi đó.


0

Một chút thay đổi về phần Q và A ở trên: Tôi đang chạy Debian Wheezy (7.0) trên máy tính xách tay 64-bit System76, tôi đã bật tính năng đa tìm kiếm và hầu hết các công cụ Android gốc dường như chạy tốt ... cho đến khi tôi thử xây dựng một ứng dụng. Quá trình xây dựng không thành công do một trong những tiện ích tài nguyên cần thiết (32-bit) libz.so.1.

apt-get cài đặt lib32z1

... đã sửa nó cho tôi.



0

Đối với người dùng Arch:
Bạn phải cài đặt các gói lib32-gcc-libs và lib32-ncurses trong kho lưu trữ Multilib. (Bạn phải bật cái nào )

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

1
"gói không tìm thấy"
Mushanthrax 25/09/17
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.