"Best" Android Development Environment Versions (ubuntu, NDK, JDK, JRE, etc)
#16
found the cmdlines in the bash history ... this is how i have setup the toolchain on the jenkins buildslave:

Code:
./make-standalone-toolchain.sh --ndk-dir=../../ --install-dir=/home/jenkins/android-dev/arm-linux-androideabi-4.8-vanilla/android-14 --platform=android-14 --toolchain=arm-linux-androideabi-4.8                                            
./make-standalone-toolchain.sh --ndk-dir=../../ --install-dir=/home/jenkins/android-dev/x86-linux-4.8-vanilla/android-14 --platform=android-14 --toolchain=x86-4.8

also

Code:
~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.3 LTS"
AppleTV4/iPhone/iPod/iPad: HowTo find debug logs and everything else which the devs like so much: click here
HowTo setup NFS for Kodi: NFS (wiki)
HowTo configure avahi (zeroconf): Avahi_Zeroconf (wiki)
READ THE IOS FAQ!: iOS FAQ (wiki)
Reply
#17
I got the arm architecture builds working on a fresh VM, using a /opt/dev/ subdir for the xbmc dependency and bootstrap outputs. So Ill put my previous issues down to either my /opt/ direcotry permissions and running some steps under sudo, or perhaps it was due to building x86 first then trying arm (on the same code tree). From now on I will maintain 2 git clones, one for arm and one for x86, to avoid the chance that one creates files that impact the other. In general it seemed they should have been able to co-exist because all the outputs are named with architecture prefixes, but who knows. Cloning the git repo twice is easier anyway because you dont have to keep doing the ./configure to change architectures.

The cmdline history for the toolchain on jenkins build slave is interesting. This is what is in the readme says
Code:
./make-standalone-toolchain.sh --ndk-dir=../../ --install-dir=<android-toolchain-arm>/android-14 --platform=android-14 --toolchain=arm-linux-androideabi-4.8
./make-standalone-toolchain.sh --ndk-dir=../../ --install-dir=<android-toolchain-x86>/android-14 --platform=android-14 --toolchain=x86-4.8 --arch=x86 --system=linux-x86_64

And further to that, I had to add --system=linux-x86_64 on the arm one to get it to work for me (it was already specified on the x86 one). This makes sense because Im on 64bit ubuntu, and the default --system is "linux-x86".

In your jenkins case, is the slave a 32bit install of ubuntu? If so then that explains why you dont need --system argument on either toolchain command, since the default of linux-x86 will be OK. But it's curious that you dont have a --arch=x86 on your x86 toolchain. The default is "arm" so surely on the x86 toolchain, you need to have this --arch=x86 argument? Unless perhaps the --toolchain also defines the --arch. For the readme, it seems safer to specify all parameters anyway though Smile

In terms of distro, mine is reporting plain 12.04 rather than 12.04.3:
Code:
~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04 LTS"
pvr.wmc TV addon and ServerWMC Backend Development Team
http://bit.ly/ServerWMC
Reply
#18
Also I'll try to explain what I was getting at regarding the Android SDK build-tools in a clearer way.

The related steps in the readme are as follows:

Quote:--------------------------------------------------------------------
3.2. Installing Android SDK packages
--------------------------------------------------------------------

After having extracted the Android SDK to <android-sdk> you need to
install some android packages using the Android SDK Manager:

# cd <android-sdk>/tools
# ./android update sdk -u -t platform,platform-tool

It seems that android SDK these days, does not have things like aapt and dx (which xbmc make apk needs) in the platform-tools anymore. They are now in a separate sdk component called build-tools-<version>. For the current SDK the full name of the component is build-tools-19.0.0

So you need to do a
Code:
./android update sdk -u -t build-tools-19.0.0
to download these.

What I was getting at is, in a future SDK version, presumably this 19.0.0 version may increment. So when documenting this in the readme we cant just say build-tools-19.0.0 as that wont last. You can figure out what the version is, by doing a
Code:
./android list sdk --extended
which gives output similar to:
Code:
Packages available for installation or update: 45
----------
id: 1 or "build-tools-19.0.0"
     Type: BuildTool
     Desc: Android SDK Build-tools, revision 19
----------
id: 2 or "doc-19"
     Type: Doc
     Desc: Documentation for Android SDK, API 19, revision 1
----------
etc
etc

So from that, we can then see that the package name is build-tools-19.0.0, and can then run the sdk update -u -t <packagename> command

What I was trying to say was, it would be nice if there was a way to download the build-tools-* package, but the android update command doesnt seem to do partial matches in the -t parameter. So the above is how to determine the correct package name and then update it.


Furthermore, XBMC make apk process doesnt understand this new SDK structure, and it tries to run aapt and dx commands, from the SDK/platform-tools location. But they are actually in SDK/build-tools/19.0.0
So until (if) the make script is updated for the new SDK structure, you have to create symliinks for aapt, dx and libs, in the platform-tools area. The symlink commands are in my post above


Hopefully I explained the issues/workaround for getting XBMC make to work with the newer android SDK structure, in a better way this time?
pvr.wmc TV addon and ServerWMC Backend Development Team
http://bit.ly/ServerWMC
Reply
#19
(2013-12-18, 01:09)scarecrow420 Wrote: In your jenkins case, is the slave a 32bit install of ubuntu?

maybe - not sure

(2013-12-18, 01:09)scarecrow420 Wrote: If so then that explains why you dont need --system argument on either toolchain command, since the default of linux-x86 will be OK. But it's curious that you dont have a --arch=x86 on your x86 toolchain. The default is "arm" so surely on the x86 toolchain, you need to have this --arch=x86 argument? Unless perhaps the --toolchain also defines the --arch. For the readme, it seems safer to specify all parameters anyway though Smile

--toolchain=x86-4.8 implies --arch=x86 very well...

(2013-12-18, 01:21)scarecrow420 Wrote: Hopefully I explained the issues/workaround for getting XBMC make to work with the newer android SDK structure, in a better way this time?

Crystal clear now. Stupid google having a version in the package name *grr*
AppleTV4/iPhone/iPod/iPad: HowTo find debug logs and everything else which the devs like so much: click here
HowTo setup NFS for Kodi: NFS (wiki)
HowTo configure avahi (zeroconf): Avahi_Zeroconf (wiki)
READ THE IOS FAQ!: iOS FAQ (wiki)
Reply

Logout Mark Read Team Forum Stats Members Help
"Best" Android Development Environment Versions (ubuntu, NDK, JDK, JRE, etc)0