android sdk, adt编译问题

转载 2011年01月17日 10:37:00

android源码中包括了sdk和adt的源码,所有在开发android的应用的时候,可以下载官方的sdk和adt,也可以用自己编译的。

我在编译的时候,遇到很多问题,记下。

我的环境是:ubuntu10.04 LST,android1.6_donut

注:使用一下命令前,记得先执行 envsetup.sh脚本。

1 编译sdk

make sdk

或者:

$make PRODUCT-sdk-sdk

这两个命令的区别请看下文。

2 编译adt

先下载一个Eclispe 3.4 Ganymede jee,版本不对的话,后面会遇到问题了,请小心。

启动一下Eclipse,第一次启动它可能会生成一些文件的。

设置一下环境变量 export ECLIPSE_HOME=XXX, XXX是eclipse的根目录,如果没有这个命令,编译工具会试图从网上给你下一个,很慢。

新建一个文件夹放编译结果 mkdir adt

敲以下命令开始编译:

        $ development/tools/eclipse/scripts/build_server.sh /home/peipei/adt

注意目标文件夹一定要写绝对路径,否则会报错。

可能遇到的问题:

 

现象:

用自己的sdk开发应用的时候,在新建android工程的时候报错:“W/ResourceType( 2888): Unable to get buffer of resource asset file ”

原因:

用make sdk能编译,可是当你将这个sdk放到eclipse里,新建Android Project的时候,会遇到以上问题,所以如果你想编一个在eclipse里用的sdk的话,不要用make sdk,应该这样

$make PRODUCT-sdk-sdk

这样编译出来的sdk才能用。


2

现象:

编译adt的时候报错:

Installation Error: Eclipse build file org.eclipse.pde.build_.../scripts/build.xml  not detected. Found ''. Aborting.

原因:

是Eclipse版本不对,请参考http://androidn.wokoko.com/bbs/viewthread.php?tid=845。

解决办法:

用Eclipse 3.4 (Ganymede), jee

现象::往模拟器sdcard push文件的时候,报错:read only。

原因:

参考:http://blog.chinaunix.net/u3/90973/showart_2178533.html

解决办法:

Android  cupcake  donut 分支仿真器启动后一般都会有 SD Card Read-Only 问题。这个问题并不是说 SDCard 属性为只读。这种情况实际上是 SDCard 根本就没有加载成功。在 cupcake 前的 1.0 版本中采用 mount.conf  SDcard 进行 mount  cupcake 之后就用 vold.conf 替代了 mountd.conf


方法1:使用vold.conf
 ~/android/build/core/main.mk 文件中加入如下一段话 
################################################################################
# Install a vold.conf file is one's not already being installed.
ifeq (,$(filter %:system/etc/vold.conf, $(PRODUCT_COPY_FILES)))
PRODUCT_COPY_FILES += /
       development/data/etc/vold.conf:system/etc/vold.conf
ifeq ($(filter eng tests,$(TARGET_BUILD_VARIANT)),)
    $(warning implicitly installing vold.conf)
endif
endif
##################################################################################
然后重新
make
make sdk

方法2:使用mountd.conf
编译mountd,并在文件系统中启动这一服务。(cupcake donut 分支下载时在system/core中并没有mountd目录而在源码树中有,这种情况需自行手动下载 )

   修改 system/core/mountd/Android.mk文件,开放最后一行

    # disabled - we are using vold now instead
    # include $(BUILD_EXECUTABLE)
    为:

    # disabled - we are using vold now instead
    include $(BUILD_EXECUTABLE)

然后 make mountd

    增加 安装mountd.conf 文件

      修改 system/core/rootdir/init.rc文件

   释放下两行:

     service mountd /system/bin/mountd
          socket mountd stream 0660 root mount


    修改  system/core/rootdir/Android.mk 文件, 增加 etc/mountd.conf /,如下:

    copy_from := /
       etc/dbus.conf /
       etc/init.goldfish.sh /
       etc/mountd.conf /
       etc/hosts

我试过他的方法1,可以的。

创建第一个android 应用程序时,SDK和ADT一定要保持版本一致。

在创建一个android application project 时,不同的安卓系统版本,SDK 和ADT 版本出现的界面可能都不一样,解决的方案时,两者的版本要保持一致,切记,是一致,不是ADT版本...
  • Armanlu
  • Armanlu
  • 2015年10月24日 10:04
  • 1273

Android SDK 目录详解,SDK 与 ADT 关系,SDK与Eclipse联系

(1)Eclipse ADT 版本高于 SDK时 遇到的问题 解决方案: 注意Eclipse SDK 路径 一定要与你的SDK 文件夹映射对应。 Eclipse如何关系...
  • zqs62761130
  • zqs62761130
  • 2015年03月16日 21:46
  • 1263

Android SDK,ADT,API 版本的对应关系

Android版本 SDK Tools API级别 ADT版本 系统代号 Android1.1 ...
  • ElyXiao
  • ElyXiao
  • 2016年02月24日 10:03
  • 9028

解决adt-bundle中无法更新下载Android SDK问题

解决adt-bundle中无法更新下载Android SDK问题
  • xiaofeige567
  • xiaofeige567
  • 2014年11月01日 13:48
  • 3677

Android平台与SDK Tools版本以及ADT版本的对应关系(最新)

Android平台与SDK Tools版本以及ADT版本的对应关系在android的开发中,我们接触很多不同版本的SDK Tools,以及很多版本的ADT,在面试的时候,面试官也是很喜欢问,请说一下你...
  • ONLYMETAGAIN
  • ONLYMETAGAIN
  • 2016年11月16日 20:46
  • 8952

Android的ADT与SDK的区别

ADT(Android Development Tools): 目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Android开发提供开发工具的升...
  • fion45
  • fion45
  • 2013年05月21日 19:27
  • 43507

Android的ADT与SDK的区别及查看版本号

ADT(Android Development Tools): 目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Android开发提供开发工具的升...
  • xuke6677
  • xuke6677
  • 2014年01月06日 19:21
  • 8702

Android--ADT与SDK之间的关系

小记: adt调用sdk,完成程序的编译和执行;反过来说,sdk被使用,需要依赖adt做为中间桥梁; SDK:Software Development Kit  软件开发工具包  含有ja...
  • sanjiaozhen
  • sanjiaozhen
  • 2015年05月02日 16:11
  • 391

Android —— SDK更新及ADT离线安装

android开发第一步:环境搭建,俗话说万事开头难,这一步可能会难倒很多人,android开发依赖的SDK,由Google提供,dang与Google不和,在国内想直接使用Google的服务,有点难...
  • u012913404
  • u012913404
  • 2016年04月01日 14:13
  • 993

SDK 与ADT版本匹配,ADT22.6.0 的升级......

昨天进行sdk升级之后,今天File-->Import文件夹,点击finish 响应;打开eclipse-->window--->preferences  出现现有sdk与ADT插件版本不匹配的问题,...
  • berry666
  • berry666
  • 2014年03月10日 14:18
  • 11900
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android sdk, adt编译问题
举报原因:
原因补充:

(最多只允许输入30个字)