Google's shipping 64-bit SDK stuff by default now? - android

I'm just starting to use Android Studio on Linux, spent almost a year getting it working, yesterday I did some tutorials then did some downloads with sdk manager. Now my ADB doesn't work anymore. Big surprise, my ADB executable is now dated today, and fastboot, etc. So I checked with the "file" utility and:
file adb
adb: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically
linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24,
BuildID[sha1]=90addc5e3980f6efab749c9032cc8d7ad60dfb94, not stripped
file fastboot
fastboot: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux
2.6.24, BuildID[sha1]=f0fd57bfe0c22d4ba1e0b3e211441162066433b4, not stripped
file dmtracedump
dmtracedump: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux
2.6.24, BuildID[sha1]=86871b6d114d9f8f9f0263d061cd9db8eb8886b7, not stripped
file sqlite3
sqlite3: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically
linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24,
BuildID[sha1]=68c2ef312f09631815b20ecbc5dce2669e350807, not stripped
You mean to tell me Google can't afford to keep a 32-bit build machine? I can't run 64 bit on my computers. Maybe it was an accident. This was apparently Platform-tools 23.1. I had it working for 1 day, grrr.
Copied in a tarball of platform_tools 22.x from another machine, seems to be working so far. I couldn't even bring up the emulator, that also uses ADB to communicate with it.

Under System Requirements (http://developer.android.com/sdk/index.html#Requirements) you can find:
Tested on UbuntuĀ® 14.04, Trusty Tahr (64-bit distribution capable of
running 32-bit applications).
If you want to keep compatibility to whatever your architecture and platform is perhaps you should use https://packages.debian.org/sid/android-tools-adb which may have older versions but perhaps enough to what you are trying to acieve.

Related

64-bit ELF file on 32-bit OS and 64-bit processor

Is it possible? I can ran 64-bit ELF file (pandoc) on 32-bit OS (Android 13) and 64-bit processor Samsung Exynos 850. What is happaning?
~ $ uname -m
armv8l
Screenshot
Just want to ran pandoc on my mobile phone. I know that i have 32 bit os, so i want to install 32 bit version of pandoc. There is no 32 bit pandoc in termux repositories. So i just add aarch64 repository and install it. I think that pandoc can ran because it staticly builded, and there is no library dependencies. Am i right?

android studio on 64 bit OS running 64bit OS give ERROR: 32-bit Linux Android emulator binaries are DEPRECATED

I got similar to this problem: Android Studio 64-bit ERROR: 32-bit Linux Android emulator binaries are DEPRECATED
I run android studio 2.1.1 on Gentoo Linux/amd64,
and when I try to run emulator of android android studio give me error:
/home/user/Android/Sdk/tools/emulator -netdelay none -netspeed full
-avd Nexus_5X_API_23 ERROR: 32-bit Linux Android emulator binaries are DEPRECATED, to use them
you will have to do at least one of the following:
- Use the '-force-32bit' option when invoking 'emulator'.
- Set ANDROID_EMULATOR_FORCE_32BIT to 'true' in your environment.
Either one will allow you to use the 32-bit binaries, but please be
aware that these will disappear in a future Android SDK release.
Consider moving to a 64-bit Linux system before that happens.
But
$ file /home/user/Android/Sdk/tools/emulator
/home/user/Android/Sdk/tools/emulator: ELF 64-bit LSB executable,
x86-64, version 1 (SYSV), dynamically linked, interpreter
/lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.15, stripped
As you can see emulator is 64bit binary, I run it 64bit OS,
also Tools->Android->Avd Manger show that Nexus_5X_API_23 has CPU/ABI = x86_64,
so what is "32-bit error" about?
Update
Looks like it need some permission, because of I can run emulator from root user. But still can not guess what exactly it need.
The problem was with the SHELL environment variable.
If I run emulator under root with SHELL=/bin/bash it all works fine, but if I run emulator from an ordinary user with SHELL=bash, it fails and shows the error message about 32 bit.

Android SDK's adb: 32bit or 64? hello-world failure [duplicate]

This question already has answers here:
unable to execute adb in Ubuntu. Downloaded file is meant for x86-64 while I have i686 [duplicate]
(2 answers)
Closed 7 years ago.
I'm trying the simplest of the tasks, which is the "hello world" tutorial of Android Studio. I'm on a 32bit Ubuntu (14.04) and I downloaded Android Studio today.
I got blocked when I try to run it, since adb isn't responding:
com.android.ddmlib - Unable to detect adb version, adb output: /home/me/Android/Sdk/platform-tools/adb: 1: /home/me/Android/Sdk/platform-tools/adb: Syntax error: ")" unexpected
When I tried to run adb by hand I discovered that it's not 32 bit while I'm on a 32 bit platform. "file adb" returns:
adb: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=[something], not stripped.
Did I miss some step where I could have picked the platform? Everyone seems to have the opposite problem, platform 64bit vs. file 32bit.
The official site give you a download binary that should configure and setup the required adb on your system, but i am guessing it is still setting up x64 version of adb on your system.
Since the site in itself doesnot list the x86 version, you have to look into the archived section. Do the following
Download the x86 version for Linux platform and install it.
Update your .bash_profile with the exported path pointing to the new location of adb.
Restart terminal and use adb.

android build platform replace x86_64 to i686

I want to build android project source, and when I using below commands, it says the binary can't executed. I found the gcc binary is x86_64 platform, my laptop is i686 platform
adan#adan-Latitude-D630:~/androidsource$ source build/envsetup.sh
adan#adan-Latitude-D630:~/androidsource$ lunch full_eng
/bin/bash: prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-gcc: cannot execute binary file
/bin/bash: prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-gcc: cannot execute binary file
Enter a password: ^C
adan#adan-Latitude-D630:~/androidsource$ file prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-gcc
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-gcc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, BuildID[sha1]=0xf8e11f40cf6b10fa26e6fea774d9d94058c53595, stripped
I found my platform is:
adan#adan-Latitude-D630:~$ uname -a
Linux adan-Latitude-D630 3.8.0-35-generic #50-Ubuntu SMP Tue Dec 3 01:25:33 UTC 2013 i686 i686 i686 GNU/Linux
I want to replace the build binary with i686 platform, how to do this?
any infomation and link is welcome
thanks
Per the slightly outdated documentation: http://source.android.com/source/building.html
and this thread: https://groups.google.com/forum/#!topic/android-building/gMW0TLIyr3o
you will need a 64 bit OS and as much RAM as you can get in order to build Android from source on the master branch, i.e. the latest and greatest code. i686 means 32-bit so if you are running 10.04 of Ubuntu, you could try to build Froyo (Android 2.2), but I would recommend more powerful hardware than a Dell Latitude as the building the Android source code could take a long time.

Android, AOSP tree, external project (ffmpeg) is built for AMD64

I'm trying to build ffmpeg4android on current AOSP tree (from /external), which is lunch-configured to aosp_arm-eng and set to PLATFORM_VERSION=4.2.
Resulting files are generated for AMD64 (host native) architecture, even though the major rest of tree is built (as expected) ARM:
readelf -a android/aosp_arm-eng/ffplay|egrep "Class:|Machine:"
Class: ELF64 Machine:
Advanced Micro Devices X86-64
versus
readelf -a
aosp/out/target/product/generic/symbols/system/lib/libril.so | egrep "Class:|Machine:"
Class: ELF32
Machine: ARM
I will probably switch to other ways of getting ffmpeg-arm (presumably the one described here); the reason of asking this question is to understand, at which build stage does cross-compilation environment breaks.

Categories

Resources