`
mfcai
  • 浏览: 411288 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在android源码中单独编译modkoid工程遇见的问题

阅读更多
modkoid工程提供了一个LedTest示例程序,是台湾的Jollen用于培训的。
对于理解android层次结构、Hal编程方法都非常有意义。
下载方法:#svn checkout http://mokoid.googlecode.com/svn/trunk/mokoid-read-only

在android源码中单独编译modkoid工程时报错,具体操作如下:
将modkoid工程拷贝到android源码的根目录下,然后进入到android源码的根目录下,执行如下命令:
$ source  mydroid/build/envsetup.sh
$mmm   mydroid/modkoid

错误日志如下:
make:进入目录'/mnt/bak/mydroid'
build/core/base_rules.mk:78: *** Module name: led.goldfish
build/core/base_rules.mk:79: *** Makefile location: mokoid/hardware/modules/led
build/core/base_rules.mk:80: *
build/core/base_rules.mk:81: * Each module must use a LOCAL_MODULE_TAGS in its
build/core/base_rules.mk:82: * Android.mk. Possible tags declared by a module:
build/core/base_rules.mk:83: *
build/core/base_rules.mk:84: *     optional, debug, eng, tests, samples
build/core/base_rules.mk:85: *
build/core/base_rules.mk:86: * If the module is expected to be in all builds
build/core/base_rules.mk:87: * of a product, then it should use the
build/core/base_rules.mk:88: * "optional" tag:
build/core/base_rules.mk:89: *
build/core/base_rules.mk:90: *    Add "LOCAL_MODULE_TAGS := optional" in the
build/core/base_rules.mk:91: *    Android.mk for the affected module, and add
build/core/base_rules.mk:92: *    the LOCAL_MODULE value for that component
build/core/base_rules.mk:93: *    into the PRODUCT_PACKAGES section of product
build/core/base_rules.mk:94: *    makefile(s) where it's necessary, if
build/core/base_rules.mk:95: *    appropriate.
build/core/base_rules.mk:96: *
build/core/base_rules.mk:97: * If the component should be in EVERY build of ALL
build/core/base_rules.mk:98: * products, then add its LOCAL_MODULE value to the
build/core/base_rules.mk:99: * PRODUCT_PACKAGES section of
build/core/base_rules.mk:100: * build/target/product/core.mk
build/core/base_rules.mk:101: *
build/core/base_rules.mk:102: *** user tag detected on new module - user tags are only supported on legacy modules。 停止。
make:离开目录“/mnt/bak/mydroid”

通过这次编译,总结了一点经验,要学会看日志。
日志明白的告诉了错误所在: Makefile location: mokoid/hardware/modules/led
查找原因 ,是因为led文件下的Android.mk文件里面,LOCAL_MODULE_TAGS变量设置的有问题。


LOCAL_MODULE_TAGS定义了当前模块的类型,编译器在编译时会根据类型的不同会有些差别,LOCAL_MODULE_TAGS可以被定义为以下类型:
user: 指该模块只在user版本下才编译
eng: 指该模块只在eng版本下才编译
tests: 指该模块只在tests版本下才编译
optional:指该模块在所有版本下都编译
如果设置不正确,tags的module不会被编译至系统中。
将工程下的所有Android.mk的LOCAL_MODULE_TAG设置为:
LOCAL_MODULE_TAGS :=optional
这样设置好以后,重新编译,编译通过。
编译成功后会如下路径生成apk文件,库文件,jar包等
out/target/product/smdkv210/system/app/LedClient.apk
out/target/product/smdkv210/system/app/LedTest.apk
out/target/product/smdkv210/system/framework/ledctl.jar
out/target/product/smdkv210/system/lib/hw/led.smdkv210.so
out/target/product/smdkv210/system/lib/libled.so
out/target/product/smdkv210/system/lib/libmokoid_runtime.so

本文欢迎转载,转载请注明出处与作者
出处:http://blog.sina.com.cn/staratsky
作者:流星
0
0
分享到:
评论

相关推荐

    如何单独编译Android源代码中的模块

    在 Android 源代码工程中,单独编译某个模块是一件很有必要的事情。尤其是在我们修改了某个模块或新增了自己的模块时,重新编译整个 Android 系统镜像 system.img 是非常耗时的。这时,我们可以使用 Android 提供的...

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

    - 在终端中进入源码目录,运行`$ lunch`命令选择编译目标,如`$ lunch generic-eng`,这会设定编译配置。 3. **执行编译** - 使用`$ make -j4`(这里的数字根据CPU核心数调整)启动编译过程,-j参数允许并行编译...

    AndroidKiller修复反编译源码卡死

    【AndroidKiller修复反编译源码卡死】这一主题主要涉及的是在使用AndroidKiller工具进行Android应用逆向工程时遇到的问题以及解决方案。AndroidKiller是一款常用的Android应用分析工具,它可以帮助开发者或安全研究...

    Android源码下载与编译.zip

    在Android开发领域,深入理解Android源码是提升技术能力的关键步骤。本文将详细介绍如何下载Android源码、如何编译源码以及对源码进行分析,旨在帮助开发者更好地掌握Android系统的内部运作机制。 **一、Android...

    安卓Android源码——系统源码获取及编译.zip

    Android源码存储在Google的Git仓库Android Open Source Project (AOSP)中。开发者需要安装Git,并配置好SSH密钥,然后克隆AOSP仓库。命令通常如下: ```bash $ git clone ...

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

    在这个"安卓Android源码——Launcher源码修改可编译.zip"文件中,你将有机会接触到Android系统的核心部分,并学习如何对源码进行编译和调试。 首先,Android源码分为几个主要部分,包括系统库、框架层、运行时环境...

    Android 源码编译过程

    Android源码编译过程是Android开发中的核心环节,它涉及到一系列复杂的步骤,旨在将源代码转化为可以在Android设备上运行的二进制系统映像。这个过程对于开发者来说至关重要,因为它允许自定义和优化Android系统,以...

    单独编译Android 源代码中的模块实现方法

    本文将详细介绍如何在Android源代码中单独编译模块。 首先,你需要在Android源代码根目录下找到`build`目录,并执行其中的`envsetup.sh`脚本。这是一个初始化环境的脚本,执行后会添加一些用于构建和管理Android源...

    Android源码编译

    在Android源码编译过程中,可能会遇到一些问题,例如: * sun-java6-jdk安装失败。 * 编译过程中出现错误。 这些问题可以通过添加repository、更新apt-cache、重新安装sun-java6-jdk等方法解决。 Android源码编译...

    Android源码编译文档

    在Android开发领域,深入理解Android源码的编译过程对于开发者来说至关重要。本文将详尽地探讨Android源码的下载、编译以及如何通过shell脚本制作镜像,旨在为开发者提供一个清晰的指南。 首先,Android源码的下载...

    Android高级应用源码-Android Launcher 源码修改可编译.zip

    《深入解析Android高级应用:基于Launcher源码的修改与编译》 在Android开发领域,对系统级应用的理解和定制是提升技术深度的重要途径。Android Launcher作为用户与系统交互的第一界面,其源码的分析与修改能帮助...

    把外部ndk-android工程放入系统源码内一起编译

    在基于Android系统的NDK(Native Development Kit)工程开发过程中,为了更好地与整个Android系统集成并方便地进行调试和测试,通常需要将外部NDK工程的部分内容融入到Android系统源码中,并与之一起编译。...

    Android源码编译.html

    Android源码编译

    ubuntu10.4编译funambol android源码

    本文将详细介绍如何在Ubuntu 10.4环境下编译Funambol的Android源码,为初学者提供指导。 1. **环境准备** - **Sun Java 1.6 SDK**:使用`sudo apt-get install sun-java6-jdk`安装,并设置环境变量。 - **...

    android 源码编译环境搭建

    android 源码编译环境搭建,LINUX环境。

    Android Launcher 源码修改可编译.zip项目安卓应用源码下载

    Android Launcher 源码修改可编译.zip项目安卓应用源码下载Android Launcher 源码修改可编译.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考

    在不同操作系统下编译Android源码需要更改一些Android源码的配置项,脚本用于自动化更改配置项.zip

    在不同操作系统下编译Android源码需要更改一些Android源码的配置项,脚本用于自动化更改配置项.zip 在不同操作系统下编译Android源码需要更改一些Android源码的配置项,脚本用于自动化更改配置项.zip 在不同操作系统...

    mame街机模拟器安卓android源码

    《mame街机模拟器安卓android源码》是一款专为Android平台设计的开源街机游戏模拟器,其核心是MAME(Multiple Arcade Machine Emulator),它致力于复原各种经典街机游戏,使得用户可以在现代设备上体验到过去的游戏...

Global site tag (gtag.js) - Google Analytics