Android 使用 Eclipse 加 ADT 插件来开发。虽然对在 Eclipse 中安装插件非常困难有心理准备,不过没想到区区一个 ADT 插件装起来这么费事。
根据标准流程,应该是这样安装:
1、下载并离线安装JDK。
2、下载并离线安装Eclipse,汉化包可以一起装上。
3、下载并安装 Android SDK。其实下载回来的只不过是一个小小的30多MB的安装器,真正要装的东西还要在线下载安装。最后全装完用了我2GB的空间。
4、下载并在 Eclipse 中安装 ADT。问题全出在这一步上面了。
首先 Eclipse 中用于安装 ADT 的地址是http://dl-ssl.google.com/android/eclipse/,可是这个地址始终无法访问,改用http://dl.google.com/android/ADT-0.9.7.zip 手工下载安装包后,在 Eclipse 中用本地文件的方式对其进行安装。
安装过程中,一直出现缺少某些包,看提示是缺少GEF和EMF一类的包,以前用 VE 的时候也要用到这2个包,这回想试试用 Eclipse 的在线安装功能。可谁知道不知道地震的问题还是 RP 问题,在线安装时不时找不到文件,手工下载只能下载到EMF的本地安装包(安装的时候又提示有错误,我崩溃啊),GEF则既没有在线安装地址,也没有离线安装包,只有打包的zip文件。折腾了半天,在反复安装 ADT 后居然莫名其妙的好了。不知道 Eclipse 为什么到了今天依然不能自动把所有依赖的包都装好。
好不容易 ADT 在 Eclipse 里面出来了,可是一大堆错误日志,像这样:Source Provider 'org.eclipse.ui.internal.contexts.ActiveContextSourceProvider' should extend AbstractSourceProvider
...
Plugin org.eclipse.rap.ui, extension org.eclipse.ui.themes, id org.eclipse.ui.workbench.INACTIVE_TAB_BG_START: 只能设置值或 defaultMapping 中的一个。
org.eclipse.ui.internal.themes.RGBContrastFactory cannot be cast to org.eclipse.ui.themes.IColorFactory
未能创建颜色工厂。
强行运行项目,结果报错:
在“正在启动 HelloAndroid”期间发生了内部错误。
java.lang.NullPointerException
at com.android.ide.eclipse.adt.internal.launch.AndroidLaunchController.launch(AndroidLaunchController.java:355)
at com.android.ide.eclipse.adt.internal.launch.LaunchConfigDelegate.doLaunch(LaunchConfigDelegate.java:320)
at com.android.ide.eclipse.adt.internal.launch.LaunchConfigDelegate.launch(LaunchConfigDelegate.java:236)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:853)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:702)
at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:924)
at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1128)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
另外,启动AVD的时候也报错:
emulator: ERROR: no search paths found in this AVD's configuration.
Weird, the AVD's config.ini file is malformed. Try re-creating it.
经查,原因是 Android SDK 不能支持操作系统用户名用英文以外的名字。难道狗狗就是这样做国际化的吗?
最后,在从 Windows7 64位版本切换到 WindowsXP 32位版本并使用英文账户名后,项目终于能运行起来了。不过,模拟器里面怎么没有那几个常用的物理按键,是在哪里设置吗?下回再说吧,真累。