`
永远的菜鸟
  • 浏览: 55391 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

编译android源码出现的问题解析

阅读更多

Android 入门 (一) 试用
Android的版本
android的版本有很多 0.9 ,1.0 ,1.5,1.6,2.0,2.1
09年4月15日 cupcake android 1.5   
09年9月15 Donut   android 1.6  : linux内核升级到2.6.29。cdma , wvga ,qvga 的支持
                       支持OpenCore2媒体引擎 , TTS
09年10月28日 android 2.0  Eclair
             支持 HTML5 
      Revamped graphics architecture for improved performance that enables better hardware acceleration.
 
2010年1月 android 2.1 Flan
        features 和2.0一样,主要是修改一些bugs

Android平台的代码
1 安装工具repo :
   curl http://android.git.kernel.org/repo >~/bin/repo
  chmod a+x ~/bin/repo

2 下载平台的代码
    代码放在/media/H/android下面
  1. 创建一个目录,放代码:

  mkdir android
  cd android

  2. 运行 repo init 下载最新的源代码:

   repo init -u git://android.git.kernel.org/platform/manifest.git

  3. 当提示输入姓名和E-mail时,输入姓名和gmail的邮件地址。成功后会提示如下信息:

      repo initialized in /android

  4 下载

   repo sync
 Notes: 如果要下载别的版本的代码,比如cupcake 则在第2步
   repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake
   下载eclair 则
   repo init -u git://android.git.kernel.org/platform/manifest.git -b eclair

android编译
Host : ubuntu 9.04
Java ,javac 版本  1.6
(一) 源码的编译
编译很简单 直接在android目录下 make ,等上5,6小时就可以了,不过android的编译系统要求java,javac的版本是1.5的,在build/core/main.mk里,
会对java,javac的版本进行检测。如果版本不对,则出现问题:

Checking build tools versions...
************************************************************
You are attempting to build with the incorrect version
of java.
 
Your version is: java version "1.6.0_0".
The correct version is: 1.5.
 
Please follow the machine setup instructions at
    http://source.android.com/download

solution 1 :编辑 build/core/main.mk

修改

java_version := $(shell java -version 2>&1 | head -n 1 | grep '[ "]1/.5[/. "$$]')

javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1/.5[/. "$$]')



java_version := $(shell java -version 2>&1 | head -n 1 | grep '[ "]1/.6[/. "$$]')

javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1/.6[/. "$$]')

  缺点: 但编译sdk的时候还是会出现问题 。
make sdk
 Docs droiddoc: out/target/common/docs/services
javadoc: 错误 - 在 doclet 类 DroidDoc 中,方法 start 已抛出异常 java.lang.reflect.InvocationTargetException
com.sun.tools.javac.code.Symbol$CompletionFailure: 未找到 sun.util.resources.OpenListResourceBundle 的类文件

solition 2:安装1.5版本的jdk:

$ sudo apt-get install sun-java5-jdk flex
$ sudo update-java-alternatives -s java-1.5.0-sun

(二)SDK的编译
  在编译完源码后,再执行 make sdk
 在out/host/linux-x86/sdk下面有
android-sdk_eng.lawrencekang_linux-x86  android-sdk_eng.lawrencekang_linux-x86.zip  sdk_deps.mk


模拟器的运行
现设置好环境变量
export PATH=$PATH:/media/H/android/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=/media/H/android/out/target/product/generic
export ANDROID_SWT=/media/H/android/out/host/linux-x86/
然后执行   emulator
用法有:
1 用缺省的virtual device 运行模拟器
   emulator
2 用某个皮肤来运行
   emulaor -skin QVGA-L 
   emulator -skin WVGA800 则用WVGA800的皮肤来运行模拟器
  但显示 :
  emulator: emulator window was out of view and was recentred
我们可以通过-scale ­­选项来解决这个问题,针对我们这个WVGA skin,用./emulator -skin WVGA -scale 0.9来启动模拟器就没问题了
3 直接指定大小
 emulator -skin 800x480

不过google的网站http://developer.android.com/上有这样一段话 :
The Android SDK includes several Emulator skins that you can use to control the resolution and density of the emulated device's screen. To select a specific skin for running the emulator, create an AVD that uses that skin. Please do not use deprecated emulator options such as -skin to control the skin used by an emulator instance. For more information about AVDs, see Android Virtual Devices.
意思是最好不要用-skin来运行模拟器,而要用-avd
创建avd用的工具是android
android
出现问题:
Error: Error parsing the sdk.
Error: /media/H/androidcupcake/out/host/linux-x86/platforms is missing.
Error: Unable to parse SDK content.

但在out/host/linux-x86/sdk/android-sdk_eng.lawrencekang_linux-x86/tools目录下 ./android 则可以
原来在out/host/linux-x86/sdk/android-sdk_eng.lawrencekang_linux-x86/下面有platforms目录,可见android会查找
上一级目录下的platforms目录
将platforms 和add-ons copy到 out/host/linux-x86下面
然后运行 android就可以了
创建的avd放在 ~/.android/avd下面
假如创建了一个foo ,则emulator -avd foo

模拟器跑起来后 ,还可以用adb shell 来执行 终端命令。

分享到:
评论

相关推荐

    android P android9源码编译.ipr.iml文件

    需要注意的是,编译Android源码可能需要大量的计算资源,包括内存和磁盘空间。此外,由于源码的复杂性,可能需要解决依赖问题、编译错误或配置问题。熟悉Android的构建系统,如`build.gradle`文件和`Android.mk`文件...

    Android编译独立源代码

    2. **内存和硬盘空间**:编译Android源码需要大量的内存和硬盘空间,建议至少使用8GB内存和100GB以上的硬盘空间。 3. **编译时间**:完整编译整个Android源码可能需要数小时甚至更长时间,因此建议根据需求仅编译所...

    android 源码的下载,及其编译步骤

    - 首先,安装Java Development Kit(JDK),这是编译Android源码的基础。官方推荐使用Sun JDK 1.5版本,尽管1.6版本也能用于部分编译过程,但在特定环节如make sdk时,仍需1.5版本的javadoc。 - 设置环境变量,将...

    Android源码反编译工具包

    这个"Android源码反编译工具包"就是专为这种需求设计的,它包含了查看和分析Android应用源码所需的各种工具。下面将详细介绍这个工具包的关键组件和使用流程。 首先,反编译过程通常包括以下几个步骤: 1. **...

    Android 源码编译的jar包

    编译Android源码并生成`classes.jar`是一项复杂但极其有价值的工作,它能帮助开发者深入理解Android系统的运行机制,对优化应用性能、解决系统级问题或开发定制化ROM都有重大意义。通过学习这些知识,开发者可以更好...

    AndroidKiller修复反编译源码卡死

    AndroidKiller是一款常用的Android应用分析工具,它可以帮助开发者或安全研究人员查看APK的源代码、资源文件、反编译Dex文件等,以理解应用的工作原理或寻找潜在的安全漏洞。 在描述中提到的“修复反编译源码卡死”...

    Android源码地图 ——Android源代码结构分析

    本文将对Android源代码的结构进行分析,帮助大家更好地理解和掌握Android系统。 首先,Android系统的源代码结构可以分为以下几个主要部分: 一、系统体系结构 Android系统体系结构是一种分层结构,包括应用层、...

    Android系统源代码情景分析-源码

    文档"Android系统源代码情景分析"可能会详细解析上述某些关键点,通过实际案例和代码片段,帮助读者更好地理解和应用源码知识。这将有助于开发者解决实际问题,如系统崩溃调试、新功能实现、系统升级等问题。 总结...

    安卓Android源码——Android Launcher 源码修改可编译.zip

    3. **编译Android源码**:要编译Android源码,开发者需要搭建AOSP(Android Open Source Project)环境,安装必要的工具如Repo、JDK、NDK等,并执行make命令来构建系统。 4. **源码修改**:修改Android源码可能包括...

    Ubuntu 64 位编译Android源码出错解决办法

    通过上述步骤,大多数在Ubuntu 64位环境下编译Android源码时遇到的常见错误均可得到妥善解决。然而,鉴于Android源码的复杂性,实际编译过程中可能还会遇到其他类型的错误或警告,开发者应持续关注编译日志,灵活...

    ubuntu10.4编译funambol android源码

    - **JavaCC 4.0**:通过`sudo apt-get install javacc`安装,JavaCC是一个Java解析器生成器,用于处理源代码级别的语法分析。 - **Android SDK**:安装后需配置环境变量,确保Ant能够找到SDK路径。 - **...

    linux编译android内核源码问题

    ### Linux下编译Android内核源码遇到的问题及解决方案 #### 概述 在尝试编译Android内核源码的过程中,经常会遇到各种错误提示。本文将针对这些常见的编译错误进行详细解析,并提供相应的解决办法。这对于那些正在...

    Android 系统 8.1源码

    要编译Android系统的源码,首先需要准备一个合适的开发环境。通常推荐使用64位Linux发行版,如Ubuntu或Fedora等。以下是一些关键步骤: 1. **安装必要的软件包**:确保已安装Git、make、gcc等工具。 2. **配置环境...

    Android系统源代码情景分析源码

    《Android系统源代码情景分析源码》是一份深入学习Android操作系统源码的宝贵资料,主要涵盖了应用层和系统层的源码分析。这份资源对于开发者来说是提升技术水平、理解Android系统内部运作机制的重要工具,旨在帮助...

    android编译系统分析.pdf

    Android编译系统的主要任务是将Java源代码编译成DEX(Dalvik Executable)文件,然后将DEX文件打包成APK文件。 二、Android编译系统组件 Android编译系统主要包括以下几个组件: 1、Java编译器:Java编译器负责...

    下载、编译 Android platform 源码

    在Android开发领域,有时需要对Android平台的源码进行深入研究或定制,这就涉及到了下载和编译Android源码的过程。下面将详细讲解这个过程。 一、下载Android源码 1. **主机环境准备**:这里以Fedora10为例,确保...

    在Ubuntu上下载、编译和安装Android最新源代码

    确保虚拟机软件与宿主机操作系统兼容,以免出现不兼容问题导致无法正常安装Ubuntu或运行Android源代码。 3. **安装Ubuntu系统**:使用VMWare创建一个新的虚拟机,并安装Ubuntu操作系统。建议使用Ubuntu 11.04版本的...

    Android源代码反编译工具包

    在Android开发领域,有时我们需要对APK应用进行深入分析,比如理解其工作原理、查找漏洞或进行二次开发,这时就需要用到Android源代码反编译工具。本工具包专为这些目的而设计,包含了实现这一目标所需的一系列工具...

    android-15源代码

    《深入解析Android 15源代码》 在移动操作系统领域,Android一直占据着重要的地位,其开源特性使得开发者能够深入理解系统内部运作机制,从而进行更高效、更个性化的开发。"android-15源代码"是Android SDK的一个...

Global site tag (gtag.js) - Google Analytics