前言

開始之前先熟悉几个名词:

SDK -- Software Development Kit, 软件开发工具包。这个词并不陌生, JDK,就是Jave Development Kit,相同对于Android 来说也有Android SDK.

Android SDK 提供了构建,測试和调试安卓应用的API 库和开发人员工具。

ADT- Android Developer Tools.安卓开发人员工具, 事实上这里就是Eclipse 用于Android 开发的插件。



高速开发环境搭建

在搭建Android 开发环境之前, 首先要安装JDK,然后下载一个ADT Bundle.

ADT Bundle 是为了高速开发提供的一个下载包

这个下载包包括了:

1, Eclipse 和ADT 插件

2. Android SDK Tools

3. Android Platform-tools

4. The latest Android platform

5. The latest Android system image for the emulator


1. 下载安装JDK

JDK 眼下的最新版本号已经到 1.8 版了。

就眼下的ADT的要求来说, 1.6 版就能够了。

这里使用的是 : jdk1.6.0_24 版本号。

JDK的历史版本号下载能够到:

http://www.oracle.com/technetwork/java/javase/archive-139210.html

下载完毕之后, 点击执行, 一直next 就能够了。

安装完毕后配置下面JAVA_HOME.

这里配置成: C:\Program Files\Java\jdk1.6.0_24


2. 下载安装ADT Bundle

ADT Bundle 事实上下载解压就能够了。

下载地址: http://developer.android.com/sdk/index.html

点击图中的button就能够了:


眼下的最新文件号是 : adt-bundle-windows-x86-20140321.zip

下载完毕后解压到你须要的文件夹, 这里解压到 C:\mysoftware 中, 解压后的文件夹结构:

至此, 环境基本上搭建完毕。


也可到例如以下地址下载:

https://onedrive.live.com/redir?resid=5B4EDBCD9EF1AB6B!195&authkey=!AB78ZyhxOx5kUMs&ithint=file%2c.zip


Eclipse 无法启动

理论上,此时进入eclipse 文件夹点击 eclipse.exe 应该就能够启动了。

可是, 发现eclipse 启动之后 , 闪一下就没有了。

eclipse 文件夹下产生一个 hs_err_pidXXXX.log 的错误文件。

错误的内容例如以下:

## A fatal error has been detected by the Java Runtime Environment:##  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x575cf75b, pid=5912, tid=5832## JRE version: Java(TM) SE Runtime Environment (7.0_55-b13) (build 1.7.0_55-b13)# Java VM: Java HotSpot(TM) Client VM (24.55-b03 mixed mode windows-x86 )# Problematic frame:# C  [gdiplus.dll+0xf75b]## Failed to write core dump. Minidumps are not enabled by default on client versions of Windows## If you would like to submit a bug report, please visit:#   http://bugreport.sun.com/bugreport/crash.jsp# The crash happened outside the Java Virtual Machine in native code.# See problematic frame for where to report the bug.#---------------  T H R E A D  ---------------Current thread (0x00df9800):  JavaThread "main" [_thread_in_native, id=5832, stack(0x00030000,0x00130000)]siginfo: ExceptionCode=0xc0000005, reading address 0xa74c9eb4Registers:EAX=0x1008090b, EBX=0x57975790, ECX=0x00000002, EDX=0x00000010ESP=0x0012e41c, EBP=0x0012e430, ESI=0xa74c9eb4, EDI=0xa74c9eb4EIP=0x575cf75b, EFLAGS=0x00010297Top of Stack: (sp=0x0012e41c)0x0012e41c:   57782d78 57782db0 00000001 a74c9eb40x0012e42c:   a74c9eb4 0012e44c 575cf3a3 000000020x0012e43c:   57975790 a74c9eb4 57782d60 000003ad0x0012e44c:   0012e4a4 5769aaa2 a74c9eb4 579757900x0012e45c:   00000002 000003ad 0000004f 000000000x0012e46c:   57949d48 57782d60 a742b000 57782d600x0012e47c:   a742b000 00000004 00000000 000000000x0012e48c:   00000002 00000000 00000004 00000000 Instructions: (pc=0x575cf75b)0x575cf73b:   57 90 90 90 90 8b 03 8b d0 c1 ea 18 83 fa 00 740x575cf74b:   45 81 fa ff 00 00 00 0f 84 3c f6 ff ff 0f 6e e00x575cf75b:   8b 06 0f 6e c0 0f 60 c7 81 f2 ff 00 00 00 0f 6e0x575cf76b:   d2 0f 61 d2 0f 62 d2 0f d5 c2 0f fd c3 0f 6f d0 Register to memory mapping:EAX=0x1008090b is an unallocated location in the heapEBX=0x57975790 is an unknown valueECX=0x00000002 is an unknown valueEDX=0x00000010 is an unknown valueESP=0x0012e41c is pointing into the stack for thread: 0x00df9800EBP=0x0012e430 is pointing into the stack for thread: 0x00df9800ESI=0xa74c9eb4 is an unknown valueEDI=0xa74c9eb4 is an unknown valueStack: [0x00030000,0x00130000],  sp=0x0012e41c,  free space=1017kNative frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)C  [gdiplus.dll+0xf75b]C  [gdiplus.dll+0xf3a3]C  [gdiplus.dll+0xdaaa2]C  [gdiplus.dll+0xdac57]C  [gdiplus.dll+0x79c24]C  [gdiplus.dll+0x16d7b]C  [gdiplus.dll+0xf2c0]C  [gdiplus.dll+0x4efe2]C  [gdiplus.dll+0x6d257]C  [gdiplus.dll+0x6d208]C  [gdiplus.dll+0x6d55e]C  [gdiplus.dll+0x9fbbc]C  [gdiplus.dll+0x9fcc8]C  [swt-gdip-win32-4236.dll+0x532b]j  org.eclipse.swt.internal.gdip.Gdip.Graphics_DrawLines(II[II)I+0j  org.eclipse.swt.graphics.GC.drawPolyline([I)V+72j  org.eclipse.e4.ui.workbench.addons.perspectiveswitcher.PerspectiveSwitcher.paint(Lorg/eclipse/swt/events/PaintEvent;)V+116j  org.eclipse.e4.ui.workbench.addons.perspectiveswitcher.PerspectiveSwitcher$5.paintControl(Lorg/eclipse/swt/events/PaintEvent;)V+5j  org.eclipse.swt.widgets.TypedListener.handleEvent(Lorg/eclipse/swt/widgets/Event;)V+1036J  org.eclipse.swt.widgets.EventTable.sendEvent(Lorg/eclipse/swt/widgets/Event;)Vj  org.eclipse.swt.widgets.Widget.sendEvent(ILorg/eclipse/swt/widgets/Event;Z)V+73j  org.eclipse.swt.widgets.Widget.sendEvent(ILorg/eclipse/swt/widgets/Event;)V+4j  org.eclipse.swt.widgets.Composite.WM_PAINT(II)Lorg/eclipse/swt/internal/win32/LRESULT;+1429J  org.eclipse.swt.widgets.Control.windowProc(IIII)IV  [jvm.dll+0x13f25a]V  [jvm.dll+0x202c1e]V  [jvm.dll+0x13f2dd]V  [jvm.dll+0xc9b22]V  [jvm.dll+0xcc0d3]C  [swt-win32-4236.dll+0x122f]C  0x56d80018C  [USER32.dll+0x8734]C  [USER32.dll+0x8816]C  [USER32.dll+0x1a013]C  [USER32.dll+0x1a039]

从以上错误,非常难看出是什么原因造成的, 仅仅是大概知道无法读内存。

这里直接给出解法:

改动 eclipse.ini 的 -Xmx 的配置, 从 768 改成 600


改动之后保存, 重新启动eclipse, 一切正常了。

果然是内存问题造成了。

应该通过配置java_ops 也能解决这个问题。


Hello World

到这里, 环境搭建就没问题了。

接下来, 创建一个Android 的Hello World.

1. 加入�一个安卓虚拟设备

直接点击虚拟设备管理图标或是 Window-->Android Virtual Device Manager


点击 "new ", 加入�


2. 建立一个安卓应用程序


3. 什么都不做, 直接执行


4. 执行结果


5. 点击进入应用程序的页面,就能开发开发和安装的首个 android app了,



6. 点击 MyFirstApp





Failed to install *.apk on device ...

正常的状况下, 点击执行后,控制台应该出现




在有些机器下,在控制台可能会出现

Failed to install *.apk on device 的错误。


解决方法是:

打开 SDK Manager , 勾选 https




更多相关文章

  1. android 开发 时间选择器TimePicker的使用
  2. 初识Android
  3. 《Android/OPhone 开发完全讲义》已出版,现提供源代码下载
  4. Attribute is missing the Android(安卓)namespace prefix——an
  5. android 系统级 bug audio latency
  6. Android开发9——Activity的启动模式
  7. Android(安卓)SDK等下载说明
  8. Android开发资料推荐之安卓巴士Android开发神贴整理
  9. 不用SDK manager 下载 Android(安卓)sdk 和 platform API(直接获

随机推荐

  1. Android(安卓)播放音乐文件与视频文件
  2. 异常ExceptionInInitializerError解决方
  3. Android(安卓)自定义 View 实例 随手拖动
  4. 图库选择
  5. Android(安卓)查看大图(直接复制可以用)
  6. Android(安卓)Studio音乐播放器and视频播
  7. android 下拉刷新控件
  8. ViewPager初步用法(二)
  9. ListActivity show List
  10. SurfaceView基本使用