ubuntu配置android開發環境和編譯源碼遇到的一些問題

來源:互聯網
上載者:User

標籤:android   blog   http   io   ar   os   使用   sp   java   

---------------------------------------------環境變數設定---------------------------------------------

1.設定jdk環境變數

編譯android源碼只支援jdk 1.6,所以如果需要編譯源碼必須下載jdk 1.6,不能下載最新的jdk 1.7,如果不需要編譯源碼則可以下載1.7版本的。

1.6版本jdk:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html

不要把環境變數配置在/etc/environment和/etc/profile檔案中,這樣配置的在有的ubuntu版本上會出現退出當前終端後不起作用的問題,在ubuntu12.04上我就遇到了此問題。
把環境變數配置在使用者目錄.bashrc檔案中是最好的選擇。
export JAVA_HOME=/home/abc/jdk1.6.0_45
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

然後執行source .bashrc使配置生效即可。

 

由於ubuntu中可能會有預設的jdk,如openjdk。假如有openjdk的話,所以,為了使預設使用的是我們安裝的jdk,還要進行如下工作。
執行:
sudo update-alternatives --install /usr/bin/java java ~/abc/jdk1.6.0_45/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac ~/abc/jdk1.6.0_45/bin/javac 300
通過這一步將我們安裝的jdk加入java選單。
然後執行:
sudo update-alternatives --config java
通過這一步選擇系統預設的jdk

---------
2.增加別名
alias b=‘cd ..‘   #返回到上一級目錄
alias bb=‘cd ../..‘
alias bbb=‘cd ../../..‘
alias g=‘gedit‘ #開啟文字編輯器

---------------------------------------------eclise相關問題---------------------------------------------
1.可以在終端順利啟動Eclipse,但是從檔案夾滑鼠雙擊,或者用起動器啟動就會出現如下的內容:

A Java RunTime Environment (JRE) or Java Development Kit (JDK) must be available in order to run Eclipse.No java virtual machine was found after searching the following locations:…


解決方案:從終端進入你的eclipse目錄,然後輸入:
則命令為:ln -s /home/abc/jdk1.6.0_45/jre jre

或者

解決辦法是在終端進入你的eclipse目錄,然後輸入:
mkdir jre
cd jre

ln -s 你的JDK目錄/bin bin


2. 找不到adb
Android --- 64bit Ubuntu 系統下 搭建JDK和SDK環境後,出現adb:error =12錯誤 
Failed to get the adb version: Cannot run program"/home/xxxx/android/android-sdk/platform-tools/adb": error=2,沒有那個檔案或目錄
錯誤提示:android-sdk-linux/platform-tools/adb: 沒有那個檔案或目錄。

解決方案:由於是64bit的系統,而Androidsdk只有32bit的程式,需要安裝ia32-libs,才能使用。
開啟終端:sudo apt-get install ia32-libs 

3.安裝ADT(Android Development Tools).
啟動Eclipse,在導覽功能表中選擇Help->Install New Softwares->點擊Add按鈕->在彈出框Add Repository中輸入Name:Android(隨便填寫),
Location:填寫地址 https://dl-ssl.google.com/android/eclipse/。點擊ok,根據需要選擇,然後安裝。安裝完畢後,重啟Eclipse。

4.在Eclipse裡配置SDK路徑
選擇Windows->Preferences->Android,選擇Android SDK的位置。我的是解壓在D:Program Filesandroid-sdk-windows這裡的,選擇這裡就行了

 

---------------------------------------------編譯android源碼---------------------------------------------

編譯過程遇到的問題:
/bin/bash: bison: 未找到命令  

sudo apt-get install bison  

/bin/bash: xsltproc: 未找到命令
sudo apt-get install xsltproc

external/clearsilver/cgi/cgi.c:22:18: fatal error: zlib.h: 沒有那個檔案或目錄  
sudo apt-get install zlib1g-dev  
  
/bin/bash: flex: 未找到命令  
sudo apt-get install flex  
  
prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:55:22: fatal error: X11/Xlib.h: 沒有那個檔案或目錄  
sudo apt-get install libx11-dev   
  
/usr/bin/ld: cannot find -lncurses  
sudo apt-get install libncurses5-dev
sudo apt-get install gperf

gcc: error trying to exec ‘cc1plus‘: execvp: 沒有那個檔案或目錄
sudo apt-get install build-essential
參考:http://www.cnblogs.com/skyme/archive/2011/01/19/1939606.html

/bin/bash: xmllint: 未找到命令
解決
sudo apt-get install xsltproc
sudo apt-get  install libxml2-utils

javac: 目標發行版 1.5 與預設的源發行版 1.7 衝突
原因:在ubuntu軟體中心安裝eclipse導致jdk變成了預設的openjdk
~$ java -version
java version "1.7.0_21"
OpenJDK Runtime Environment (IcedTea 2.3.9) (7u21-2.3.9-1ubuntu1)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
修改方法:卸載ubutnu軟體中心安裝的eclipse,重新下載安裝eclipse和sun jdk1.6。
sudo apt-get remove openjdk*
此命令會卸載所有依賴openjdk的軟體,包括從ubuntu軟體中心安裝的eclipse。

/usr/include/stdc-predef.h:30:26: fatal error: bits/predefs.h: No such file or directory
compilation terminated.
sudo apt-get install gcc-multilib

錯誤:
build/core/java.mk:9: *** bin: Target java module does not define any source or resource files. Stop.

解決:
      刪除源碼根目錄下的bin檔案夾,這個檔案夾是匯入eclipse時建立的。

[email protected]:~$ sudo update-alternatives --config java
update-alternatives: 錯誤: no alternatives for java

http://source.android.com/source/initializing.html#configuring-usb-access
Initializing a Build Environment
在12.04,12.10,13.04版本上需要安裝以下庫
$ sudo apt-get install git gnupg flex bison gperf build-essential \
  zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
  libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
  libgl1-mesa-dev g++-multilib mingw32 tofrodos \
  python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
但本人的機器上安裝上以上lib後還是編譯不過,後來發現是因為以前編譯使導致了current.txt檔案有改變,因此api介面與實際不符,所以編譯報錯找不到android內建的api。
把current.txt恢複後即可編譯通過。
--------------------------------------------

ubuntu配置android開發環境和編譯源碼遇到的一些問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.