Dave Swihart

[GUIDE] Setup Android Development Environment on Ubuntu 14.04 Trusty Tahr

Discussion created by Dave Swihart on Jul 21, 2014

Hi All,

 

This originally was posted in the i.MX Solutions, but I was asked to move it here for higher visibility. This has been updated as of 7/19/2014. With Ubuntu 14.04 LTS Trusty Tahr being up and running, I decided to post this guide to help anyone wanting to move over to it. I personally believe this is the best Ubuntu yet. This has come from my trial and errors, searching all over the web, and bits I picked up from here and there. You should have a fully functional android development environment once this is completed. NOTE-------- some of these packages may already be on your machine. Obviously, if you complete a step and you have one of these installed, the machine simply will not do anything. So...it will not hurt anything. Some of the packages are different from Ubuntu 12.04 and 13.04 (use these packages for Ubuntu 14.04 as many of the old ones have obsoleted - these are new replacements).

 

The first thing I highly recommend installing is "Muon Package Manager" from the Ubuntu Software Center. I will be referring to it to install some packages.

 

Next...

Installing Python

Open terminal (CTRL + ALT + T)

Then execute the following commands in terminal one by one:

 

$ sudo apt-get install build-essential gcc

$ wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz

$ tar -xvzf Python-2.7.6.tgz

$ cd Python-2.7.6

$ ./configure --prefix=/usr/local/python2.7

$ make

$ sudo make install

$ sudo ln -s /usr/local/python2.7/bin/python /usr/bin/python2.7

 

Now Python is configured

 

Installing The JDK

Add PPA to system

 

$ sudo add-apt-repository ppa:webupd8team/java


Download & install java

 

$ sudo apt-get update && sudo apt-get install oracle-java6-installer


CHECK

 

$ java -version

 

You should see something like:

 

java version "1.6.0_45"

Java(TM) SE Runtime Environment (build 1.6.0_45-b06)

Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

 

If not (I have had trouble with this i the past), go to:

http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html

(in your browser and manually download)

You will have to login or setup an account with Oracle if you do not have one.

Put the "jdk-6u45-linux-x64.bin" in the home directory.

Then we need to run the binary and move it to a shared location by opening a terminal and typing:

 

$ chmod +x jdk-6u45-linux-x64.bin

$ sudo ./jdk-6u45-linux-x64.bin

$ sudo mv jdk1.6.0_45 /usr/lib/jvm/

 

Now you have to install all binaries and give them highest priority, This will also overwrite the previous version of Java Binaries in your computer:

 

$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_45/bin/java 1

$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_45/bin/javac 1

$ sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.6.0_45/bin/javaws 1

$ sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.6.0_45/bin/jar 1

$ sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk1.6.0_45/bin/javadoc 1

$ sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk1.6.0_45/bin/javap 1  (EDIT - This is needed to compile Kit Kat 4.4)

 

Most of the time I get after these commands, basically the jdk is not there. Just run the binary and move it to a shared location using three commands above again and install and give them the highest priority again...its a pain, I know)

Now check if JDK 1.6 is selected on this:

 

$ sudo update-alternatives --config java

$ sudo update-alternatives --config javac

$ sudo update-alternatives --config javaws

$ sudo update-alternatives --config jar

$ sudo update-alternatives --config javadoc

$ sudo update-alternatives --config javap  (EDIT - This is needed to compile Kit Kat 4.4)

 

These six should all be selected.

Now JDK is configured! To check if it is done

Execute this is Terminal:

 

$ java -version

 

Output will be similar to this:

 

java version "1.6.0_45"

Java(TM) SE Runtime Environment (build 1.6.0_45-b06)

Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

 

IF NOT, YOU MAY NEED TO RUN AGAIN

JDK is now configured. You can now delete or save somewhere else "jdk-6u45-linux-x64.bin"  that is in the home directory


Installing GNU Make (use only make-3.81; this was designed for android)

 

$ wget -o make.tar.gz http://ftp.gnu.org/gnu/make/make-3.81.tar.gz

$ tar -xvzf make-3.81.tar.gz

$ cd make-3.81

$ ./configure

$ sudo make install

 

Now GNU make is configured


Installing Android SDK

Download the SDK from:

http://developer.android.com/sdk/index.html

Accept Terms & download 64 bit.

Extract in your home directory & rename extracted folder "adt".

Now, execute these commands in terminal:

 

$ cd ~/adt/sdk/tools/

$ ./android sdk

 

At this point the SDK should come up and you will need to download at least all the tools and all the extras files (at least to 4.0, so select them and install them.When it finishes downloading & installing everything you have to run this command in ANOTHER TERMINAL:

 

$ sudo gedit .bashrc

 

And you need to add at the end of it your SDK paths these three lines (cop and paste them):


#Android PATHS

export PATH=$PATH:~/adt/sdk/tools

export PATH=$PATH:~/adt/sdk/platform-tools

 

Save and close the file, then close terminals.

SDK is configured.


Setup ADB & Fastboot

These packages are needed to run many many android commands such as ADB and FASTBOOT (only 64-bit needs this). Using Muon Package Manager, get these three packages:

lib32z1

lib32ncurses5

lib32bz2-1.0

 

Configuring USB Access

Go to:

snowdream/51-android · GitHub

Download "51-Android.rules"

Add these lines in alphabetical order:

 

#Sabresd

SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0777"

SUBSYSTEM=="usb|usb_device", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"


Open Terminal and type:

 

$ gksudo nautilus

 

In the pop up, Go back to hard drive & navigate to: /etc/udev/rules.d

Copy & paste 51-android.rules

Save and close the file, then close the window.

Set the right permissions to this file:


$ sudo chmod 644   /etc/udev/rules.d/51-android.rules

$ sudo chown root. /etc/udev/rules.d/51-android.rules

$ sudo service udev restart

$ sudo killall adb

 

ADB & Fastboot are configured


Installing Required Packages

Open Terminal

Now execute this command:

 

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \

zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \

libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \

libxml2-utils xsltproc pngcrush gcc-multilib lib32z1 schedtool

 

When that is finished, execute these commands:


$ sudo apt-get install uuid uuid-dev

$ sudo apt-get install zlib1g-dev liblz-dev

$ sudo apt-get install liblzo2-2 liblzo2-dev

$ sudo add-apt-repository ppa:git-core/ppa

$ sudo apt-get update

$ sudo apt-get install git-core curl

$ sudo apt-get install u-boot-tools

$ sudo apt-get install cbootimage

$ sudo apt-get install dfu-util

$ sudo apt-get install libterm-twiddle-perl

 

Using Muon Package Manager install these packages (again some of these may already be installed):

original-awk

cl-awk

dpkg-awk

gawk

mawk

sed

ssed

abootimg

 

Installing Repo Package

Open terminal and type:

 

$ mkdir ~/bin

$ PATH=~/bin:$PATH

$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

$ chmod a+x ~/bin/repo

 

Now it is recommended to reboot your computer !!!!

 

Extra Packages Needed For Ubuntu 14.04 Trusty Tar

These must be installed to avoid an issue that comes up during the android build causing an error.

Open Muon Package Manager and type "cpanm" and install:

libmodule-cpafile-perl

cpanminus

pmuninstall

Next, type in "libperl" and install if not installed:

libperl-dev

libperl-apireference-perl

libperl5.18

libperl6-caller-perl

libperlio-gzip-perl

libperl4-corelibs-perl

libperl5i-perl

Next, type in "perl" and install if not installed:

perl

perl-base

libxml-perl

libfile-find-rule-perl-perl

libprobe-perl-perl

libmodern-perl-perl

perl-modules

Close Moun Package Manager

Open a terminal and type:


$ cpan App::cpanminus

 

(answer "yes" then "sudo" and then "yes" when asked)

 

$ sudo cpanm Switch


Configure Git

Open terminal and type:


$ git config --global user.email "<your email address here>"

$ git config --global user.name "<your user name here>"

 

Git is configured.

 

Istall Ccache

Download "ccache 3.1.9 source code (tar.gz)" (or higher) from:

http://ccache.samba.org/download.html

Extract to the home directory.

Open terminal & execute:

 

$ cd ccache-3.1.9

$ ./configure

$ make

$ make install

$ sudo gedit make install.bashrc


Copy & paste the following:

 

export USE_CCACHE=1


Save & close


Open terminal & execute:

 

$ ccache -M 75G

 

I usually use 75 gigs.

Ccache is now set to 75 gigs.

 

Generating SSH Keys

Check for SSH keys in the terminal:

 

$ cd ~/.ssh

$ ls

 

Check the directory listing to see if you have a file named either id_rsa.pub or id_dsa.pub. If you don't have either of those files go on. Otherwise, you already have an existing key pair, and you can skip to "Add your SSH key to GitHub".

Generate a new SSH key.

To generate a new SSH key, enter the code below. We want the default settings so when asked to enter a file in which to save the key, just press enter.Type in the terminal:


$ ssh-keygen -t rsa -C "<your email address here>"


Will ask for pass phrase twice; just press enter twice.

Add your SSH key to GitHub

Run the following code to copy the key to your clipboard:

 

$ sudo apt-get install xclip

$ xclip -sel clip < ~/.ssh/id_rsa.pub

 

Go to your github account (create one if you do not have one) & add your new public key.

GitHub · Build software better, together.

Test everything out.

Type in the terminal:

 

$ ssh -T git@github.com

 

You may see this warning:

The authenticity of host 'github.com (207.97.227.239)' can't be established.

# RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.

# Are you sure you want to continue connecting (yes/no)?

Type in "yes"; you should get this:

Hi username! You've successfully authenticated, but GitHub does not # provide shell access.

If the username is correct, you've successfully set up your SSH key.


YOUR BUILD ENVIROMENT IS NOW SETUP

 

Message was edited by: Dave Swihart

Outcomes