本文参与:Testin—安卓巴士Android开发原创教程大赛
需要的软件包有三个,截止到2012年7月这些软件都是最新版本的:分别是JDK、SDK、Eclipse(版本4.2 Juno)他们的名字和大小如下
一、软件包的下载
1、JDK的下载(jdk-7u5-windows-i586)
http://www.oracle.com/technetwork/java/javase/downloads/index.html
2、SDK的下载(installer_r20-windows)
http://developer.android.com/sdk/index.html
3、Eclipse的下载(eclipse-jee-juno-win32)
http://www.eclipse.org/downloads/
二、软件安装
说说我的文件夹是怎么安排的,软件安装前先在自己安装软件的那个盘新建一个文件夹名字可以取为Android,然后这三个软件分别安装到里面的三个文件夹里就可以了,然后在Android文件夹里新建一个文件夹专门放自己的工程文件。
1、JDK的安装
上面下载的jdk-7u5-windows-i586是一个安装包,直接双击就可以安装了,记得路径选择Android文件夹里的Java 文件夹。
2、Eclipse的安装
上面下载的eclipse-jee-juno-win32是一个压缩包,解压后就可以直接用了,将解压后的文件夹eclipse-jee-juno-win32也放在Android文件夹下。
3、SDK的安装
上面下载的installer_r20-windows是一个安装包,将它安装到Android文件夹里的android-sdk文件夹。
装好以后像我的文件夹就是这样了
三、Eclipse配置
打开Eclipse选择help->Install New SoftWare 进入如下界面,
名字随意,我写的是android, 网址输入: https://dl-ssl.google.com/android/eclipse/ (如果出错,请将https改成http)
点击Next进入下面界面Android DDMS和Android Development Tools是必选,我为了方便全选了。
接下来Next->Next->接受协议并Next进入如下界面
安装完成后出现如下界面,选Yes重启Eclipse即可。
四、SDK配置
在刚才安装SDK的文件夹里找到SDK Manager并运行,如下图
为了快点安装完我们先只安装一个版本的SDK(Android 2.2)挺快的,其他的有时间再安装,方法跟这个是一样的,因为要在线安装,一次性安装太多版本估计要四五个小时。
另外需要提醒的是点击进度条右端小方块(安装过程中它是红色的)可以停止下载,并将已下载的包安装完,下次可以接着下。
五、创建AVD
打开Eclipse点击如图三角形所指的机器人按钮,就会出现AVD界面,点击New可以新建AVD。AVD是运行在电脑上的虚拟手机,启动了建好的AVD再让你写的工程Run,Eclipse就会自动将写好的安卓软件安装到虚拟的手机里面运行。
按下图填写就可以配置一台运行Android2.2版本的虚拟手机了,当然Target里面的选项跟你安装的SDK是一致的,这里面还有各种品牌的机型(如Samsung、HTC、Sony)供选择,具有相当逼真的外观。
在AVD界面选择一个已经建好的虚拟机,点击Start就可以启动了,效果如下
六、创建工程
选择菜单file->new->other 进入如下界面:
选择新建Android Application Project项目,点击Next按钮,进入如下界面
继续Next,下面是选择程序的图标
连续两个Next,到如下界面,填写Activity、Layout和Title的名字,然后Finish就完成了工程的创建。
注: 若有错误如: Project ... is missing required source folder: 'gen' ,则将gen->Android.Test->R.java这个文件删掉,Eclipse会为我们重新生成这个文件,并且不会报错。
配置运行,右键项目->Run as -> Run Configuration 进入如下界面
该界面,点击Browse 按钮,选择你要运行的项目,选择Target切换到以下界面 该界面选择运行的AVD,将AVD前面的方框设置为选择状态。
创建好的工程自带一段Hello World代码因此可以直接运行,右键项目名称->run as ->Android Application 效果如图
到这里安卓开发的前期准备工作已经做完,接下来就是在Eclipse里面写代码发挥你的想象和才智了!
附录:(初学者遇到的一些问题)
一、 建好工程后点击打开工程里任何一个文件都出现报错
multiple problems have occurred java.lang.NullPointerException
解决办法:建工程的过程中出问题,我的是在建工程时填写packagename时出现The prefix 'com.example.' is meant as a placeholder and should not be used如下图 只需将'com.example.'改成其他名字即可
二、textview cannot be resolved to a type 解决方法
Android开发视频教学中,用的是Android 1.6版本,
本机装了4.2版本,在跟着建Activity的时候却发生错误:\"textview cannot be resolved to a type“在
TextViewmyTextView=(TextView)this.findViewById(R.id.myTextView); Button myButton=(Button)this.findViewById(R.id.myButton); 之后看了下配套的代码,才知道原来发现缺少了两个包,于是在MainActivit.java文件的import部分加上 import android.widget.Button; import android.widget.TextView; 或者
importandroid.widget.*; 具体情况如下图
三、 Activity标题的设置
Activity Name和Layout Name顾名思义,Title将会显示在该界面的顶端
四、fill_parent和wrap_content的区别(翻译)
2010-11-12 10:18:01| 分类: java_android | 标签:android |字号 订阅
Either attribute can be applied to View's (visual control) horizontal or vertical size. It's
used to set a View or Layouts size based on either it's contents or the size of it's parent layout rather than explicitly specifying a dimension.
两个属性都用来适应视图的水平或垂直大小,一个以视图的内容或尺寸为基础的布局比精确地指定视图范围更加方便。 fill_parent
Setting the layout of a widget to fill_parent will force it to expand to take up as much space as is available within the layout element it's been placed in. It's roughly equivalent of setting the dockstyle of a Windows Form Control to Fill.
设置一个构件的布局为fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间。这跟Windows控件的dockstyle属性大体一致。
Setting a top level layout or control to fill_parent will force it to take up the whole screen.
设置一个顶部布局或控件为fill_parent将强制性让它布满整个屏幕。 wrap_content
Setting a View's size to wrap_content will force it to expand only far enough to contain the values (or child controls) it contains. For controls -- like text boxes (TextView) or images (ImageView) -- this will wrap the text or image being shown. For layout elements it will resize the layout to fit the controls / layouts added as its children.
设置一个视图的尺寸为wrap_content将强制性地使视图扩展以显示全部内容。以TextView和ImageView控件为例,设置为wrap_content将完整显示其内部的文本和图像。布局元素将根据内容更改大小。
It's roughly the equivalent of setting a Windows Form Control's Autosize property to True.
设置一个视图的尺寸为wrap_content大体等同于设置Windows控件的Autosize属性为True。 简言之:
fill_parent布局指将视图(在Windows中称为控件)扩展以填充所在容器的全部空间。
wrap_content布局指根据视图内部内容自动扩展以适应其大小。
五、Android 错误 The method onClick(View) of type new View.OnClickListener(){} must override a superclass
很早以前自己的一个 Android 小游戏的项目,今天用 Eclipse 重新打开报了一堆错误,都是跟 @Override 有关的,google一下找到解决的办法
(http://blog.csdn.net/skylen/archive/2011/02/21/6198699.aspx):源码打印? mButton1.setOnClickListener(new Button.OnClickListener() { @Override public void
onClick(View v) { // TODO Auto-generated method stub mTextView1.setText(\"Hi, Everyone!!\"); } }); 上述代码报错如下 - implements
android.view.View.OnClickListener.onClick - The method onClick(View) of type new View.OnClickListener(){} must override a superclass 查找后发现是jdk版本问题
project---->properties---->javaCompiler中的complier compliance level 将1.5改为1.6就是说Java 1.5的编译器默认对父类的方法进行覆盖,采用@Override进行说明;但1.6已经扩展到对接口的方法;所以如果还是以Java 1.5的编译器来编译的话,会出现错误。 java的编译器是1.6版本的,选择编译级别为1.6,但重要的一点是,选择build的android库是1.5的即可,生成的apk程序是可以在1.5内核上跑起来。总的来讲:androidsdk的版本与Java JRE的版本可以配置起来用,两者关系应该是疏松的。
出现问题如下图:
六、建工程选择图标的问题
这个问题很蛋疼,不想多说。。。。如图,选择图片或者剪贴纸做图标都是正常的,若一时手贱选了Text做图标就会建出一个奇怪的工程,里面的gen文件夹都是空
的,更严重的是所有的文件夹都是空的,如第二张图所示,接着你再建工程的话不管你怎么选都出错,必须重启eclipse才行!
七、常用操作详解
1、创建Activity:
需要多个Activity时可以直接创建,操作:进入SRC文件夹内找到.java后缀的文件,右键单击选择NewClass填上NameFinish就可以了。
2、创建XML文件:
因为每个Activity对应一个布局文件,所以创建了Activity后一般还要再创建一个对应的XML布局文件,操作:进入layout文件夹,右键单击选择NewFile填上文件名和后缀Finish就可以了。
3、添加@override:
@Override是伪代码,表示重写,写上该代码可以验证该方法名是否是父类所有的,从而检查方法的正确性,具体操作:右键SourceOverride/Implement Methods…即可选择重写的内容
4、eclipse快捷键&操作技巧:
全局内容辅助 Alt+/ (写代码时可以列出可能的代码供选择,哥的大爱)
Ctrl-Shift-O 自动补充所缺的Import语句(这也是哥的大爱~~)
Project->Clean刷新代码,解决莫名其妙的问题(这个我平均每50行代码用一次。。直接点击左上角的Save All即Ctrl+Shift+S也可以达到相同的效果)
我的悲催经历:用Import添加从网上下载的源码文件夹时点了全部Clean,然后我发现我自己写的工程和源码都打上红叉了,我是将源码删了,在重新把自己的工程Clean一下就好了。 有个工程的主界面Activity里的import里面还多了一句importandroid.R;删了就行了。
输入左大括号后按回车会自动完成右括号,并且保持对齐
全局撤销Ctrl+Z
Ctrl+1 快速修复(最经典的快捷键,就不用多说了,显示修改建议)
Ctrl+/注释当前行,再按则取消注释
Ctrl-F11运行
具体列表
************************************************************************
杂项
Ctrl+1 快速修复(最经典的快捷键,就不用多说了,显示修改建议) Ctrl+D: 删除当前行
Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了) Alt+↑ 当前行和上面一行交互位置(同上) Alt+← 前一个编辑的页面
Alt+→ 下一个编辑的页面(当然是针对上面那条来说了) Alt+Enter显示当前选择资源(工程,or 文件 or文件)的属性
Shift+Enter在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后) Shift+Ctrl+Enter在当前行插入空行(原理同上条) Ctrl+Q定位到最后编辑的地方
Ctrl+L定位在某行 (对于程序超过100的人就有福音了) Ctrl+M最大化当前的Edit或View (再按则反之) Ctrl+/ 注释当前行,再按则取消注释 Ctrl+O快速显示OutLine
Ctrl+T快速显示当前类的继承结构 Ctrl+W关闭当前Editer
Ctrl+K参照选中的Word快速定位到下一个
Ctrl+E快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示) Ctrl+/(小键盘) 折叠当前类中的所有代码 Ctrl+×(小键盘) 展开当前类中的所有代码
Ctrl+Space代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)
Ctrl+Shift+E显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)
Ctrl+J正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)
Ctrl+Shift+J反向增量查找(和上条相同,只不过是从后往前查) Ctrl+Shift+F4 关闭所有打开的Editer
Ctrl+Shift+X把当前选中的文本全部变味小写 Ctrl+Shift+Y把当前选中的文本全部变为小写 Ctrl+Shift+F格式化当前代码
Ctrl+Shift+P定位到对于的匹配符(譬如{}) (从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)
下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是Alt+Shift开头的了)
Alt+Shift+R重命名 (是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力)
Alt+Shift+M抽取方法 (这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用) Alt+Shift+C修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)
Alt+Shift+L抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候)
Alt+Shift+F把Class中的local变量变为field变量 (比较实用的功能) Alt+Shift+I合并变量(可能这样说有点不妥Inline)
Alt+Shift+V移动函数和变量(不怎么常用) Alt+Shift+Z重构的后悔药(Undo)
************************************************************************
编辑
作用域功能快捷键
全局查找并替换Ctrl+F
文本编辑器查找上一个Ctrl+Shift+K 文本编辑器查找下一个Ctrl+K 全局撤销Ctrl+Z 全局复制Ctrl+C
全局恢复上一个选择Alt+Shift+↓ 全局剪切Ctrl+X
全局快速修正 Ctrl1+1 全局内容辅助 Alt+/ 全局全部选中Ctrl+A 全局删除 Delete
全局上下文信息 Alt+? Alt+Shift+?
Ctrl+Shift+Space
Java编辑器显示工具提示描述 F2 Java编辑器选择封装元素Alt+Shift+↑ Java编辑器选择上一个元素Alt+Shift+← Java编辑器选择下一个元素Alt+Shift+→ 文本编辑器增量查找Ctrl+J
文本编辑器增量逆向查找Ctrl+Shift+J 全局粘贴Ctrl+V 全局重做Ctrl+Y
************************************************************************
查看
作用域功能快捷键 全局放大 Ctrl+= 全局缩小 Ctrl+-
************************************************************************
窗口
作用域功能快捷键 全局激活编辑器 F12
全局切换编辑器Ctrl+Shift+W 全局上一个编辑器 Ctrl+Shift+F6 全局上一个视图 Ctrl+Shift+F7 全局上一个透视图 Ctrl+Shift+F8
全局下一个编辑器 Ctrl+F6 全局下一个视图 Ctrl+F7 全局下一个透视图 Ctrl+F8
文本编辑器显示标尺上下文菜单Ctrl+W 全局显示视图菜单 Ctrl+F10 全局显示系统菜单 Alt+-
************************************************************************
导航
作用域功能快捷键
Java编辑器打开结构 Ctrl+F3 全局打开类型Ctrl+Shift+T 全局打开类型层次结构 F4 全局打开声明 F3
全局打开外部javadoc Shift+F2 全局打开资源Ctrl+Shift+R 全局后退历史记录 Alt+← 全局前进历史记录 Alt+→ 全局上一个 Ctrl+, 全局下一个 Ctrl+.
Java编辑器显示大纲Ctrl+O
全局在层次结构中打开类型Ctrl+Shift+H 全局转至匹配的括号Ctrl+Shift+P 全局转至上一个编辑位置Ctrl+Q
Java编辑器转至上一个成员Ctrl+Shift+↑ Java编辑器转至下一个成员Ctrl+Shift+↓ 文本编辑器转至行Ctrl+L
************************************************************************
搜索
作用域功能快捷键
全局出现在文件中Ctrl+Shift+U 全局打开搜索对话框Ctrl+H 全局工作区中的声明Ctrl+G
全局工作区中的引用Ctrl+Shift+G
************************************************************************
文本编辑
作用域功能快捷键
文本编辑器改写切换 Insert 文本编辑器上滚行 Ctrl+↑ 文本编辑器下滚行 Ctrl+↓
************************************************************************
文件
作用域功能快捷键 全局保存Ctrl+X Ctrl+S
全局打印Ctrl+P 全局关闭 Ctrl+F4
全局全部保存Ctrl+Shift+S 全局全部关闭 Ctrl+Shift+F4 全局属性Alt+Enter 全局新建Ctrl+N
************************************************************************
项目
作用域功能快捷键 全局全部构建Ctrl+B
************************************************************************
源代码
作用域功能快捷键
Java编辑器格式化Ctrl+Shift+F Java编辑器取消注释 Ctrl+\\ Java编辑器注释 Ctrl+/
Java编辑器添加导入Ctrl+Shift+M Java编辑器组织导入Ctrl+Shift+O
Java编辑器使用try/catch块来包围未设置,太常用了,所以在这里列出,建议自己设置。 也可以使用Ctrl+1自动修正。
************************************************************************
运行
作用域功能快捷键 全局单步返回 F7 全局单步跳过 F6 全局单步跳入 F5
全局单步跳入选择 Ctrl+F5 全局调试上次启动 F11 全局继续 F8
全局使用过滤器单步执行 Shift+F5 全局添加/去除断点Ctrl+Shift+B 全局显示Ctrl+D
全局运行上次启动 Ctrl+F11 全局运行至行Ctrl+R 全局执行Ctrl+U
************************************************************************
重构
作用域功能快捷键
全局撤销重构Alt+Shift+Z 全局抽取方法Alt+Shift+M 全局抽取局部变量Alt+Shift+L 全局内联Alt+Shift+I 全局移动Alt+Shift+V 全局重命名Alt+Shift+R 全局重做Alt+Shift+Y
************************************************************************
八、Override错误
1、java @override 报错处理
有时候在自己电脑上编译通过的java代码,在别人那里却编译不通过,总是@override报错,把@override去掉就好了,但不能从根本上解决问题。
据说这是jdk的问题,@Override是JDK5就已经有了,但有个小小的Bug,就是不支持对接口的实现,认为这不是Override 而JDK6修正了这个Bug,无论是对父类的方法覆盖还是对接口的实现都可以加上@Override。
首先要确保安装了jdk 1.6,然后,在eclipse中修改配置,在 Windows->Preferences-->java->Compiler-->compiler compliance level 中选择 1.6,刷新工程,重新编译下;如果还是不行,就在报错的工程上,鼠标右键选择 Properties-->Java Compiler-->compiler compliance level 中选择 1.6,刷新工程,重新编译下。
2、Android之@Override详解
Android的开发者对@Override肯定是非常熟悉,不管是自己的代码中还是书上都会出现,但是他是什么意思呢?如下:
@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处: 1、可以当注释用,方便阅读
2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错比如你如果没写@Override而你下面的方法名又写错了,这时你的编译器是可以通过的(它以为这个方法是你的子类中自己增加的方法) example:
在重写父类的onCreate时,在方法前面加上@Override系统可以帮你检查方法的正确性。例如:
publicvoidonCreate(BundlesavedInstanceState){…….} 这种写法是正确的,如果你写成
publicvoidoncreate(BundlesavedInstanceState){…….} 这样编译器会报如下错误——
Themethodoncreate(Bundle)oftypeHelloWorldmustoverrideorimplementasupertypemethod,
以确保你正确重写onCreate方法。(因为oncreate应该为onCreate)
而如果你不加@Override,则编译器将不会检测出错误,而是会认为你新定义了一个方法oncreate。
3、错误提示:Syntax error, insert \";\" to complete BlockStatements
根据给出的修改建议,添加一个@什么什么的,然后再删了就不会报错了,这是为什么啊啊啊?
九、安卓调试技巧
在一个程序里我忘了在AndroidManifest.xml里对新建的Activity进行注册,代码不报错,但是程序运行时就出现进程意外停止的情况,我查错的过程:运行程序,运行完出现问题后查看LogCat里面的运行日志,发现里面说07-08 07:02:07.048: E/AndroidRuntime(394): android.content.ActivityNotFoundException: Unable to find explicit activity class {work.line/work.line.Result}; have you declared this activity in your AndroidManifest.xml?我当时就懂我错在哪了。。。
十、控件
TextView Button Toast
Radio和RadioButton CheckBox ProgressBar ListView
十一、使用Eclipse打开现有工程文件
在开始使用Eclipse的时候,会发现一个问题,那就是如何打开一个现有的Eclipse工程,开始在菜单中找了好久也没找到。
其实,Eclipse生成的结果不像VC,Jcreator那样可以直接打开,若要打开非workspace文件夹下的其他已有工程,可以打开菜单file->import→general→existing project into space.在select root directory中选中要打开的工程文件夹即可(也可打开一个包含许多工程的文件夹)。此时如果选择copy existing project into
workspace就会同时将文件拷贝到workspace下。这里首先要保证要保证Eclipse两个文件.classpath和.project还在,不然无法导入,就是说Eclipse的import只认自己家的东西。
如果要打开的工程与Eclipse的配置不同,在运行时会产生问题。解决方法是:打开菜单project→properties修改。主要需要修改的是java build path项。
十二、adb的配置
首先明确一下几点:
1、我的JDK安装的路径是I:\\Android\\android-sdk 2、我现在用的是win7系统
步骤:计算机属性高级系统配置环境变量点击用户变量中的“新建”填写变量名随意(如我写了Android),填写变量值即JDK安装的路径(我的
I:\\Android\\android-sdk)确定在系统变量中找到PATH(或path)点击“编辑”在变量值末尾加上;I:\\Android\\android-sdk\ools; I:\\Android\\android-sdk\\platform-tools注意有两个英文分号“;”确定 如此就大功告成了!
截图:
十三、报错:activity_main cannot be resolved or is not a field
Link all references for a local rename (does not change references in other files) main cannot be resolved or is not a field
刚遇到这个纠结的问题,代码都没错,R.layout.main总是在layout上游错误提示波浪线。在网上查了好多都是说clean一下工程然后build工程就可以了,或者fix project properties 但是还是解决不了...
原因可能是添加文件,比如xml文件或者资源文件时,系统自动添加了import android.R;android.R是系统提供的资源,R是应用程序的资源。 这时候只要删除 import android.R;这条语句就可以了。 有关详细说明见下面链接~
http://stackoverflow.com/questions/3296047/android-question-id-cannot-be-resolved-or-is-not-a-field-error
TestinID:772358053@qq.com
Testin举办的这个比赛对正在兴起的安卓开发热潮巨大的推动作用,鼓励大家写教程,将让越来越多的安卓兴趣爱好者更加轻松的走入这一领域,这种良好的氛围是其他地方感受不到的。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务