加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

第一个Android程序HelloWorld,以及遇到的问题

(2010-12-26 00:15:11)
标签:

android

    下午搭建好Android开发环境,自然就要开始Hello World之旅!

 

    不过这次的示例程序,因为创建AVD的问题,让我走了很多弯路,多花费了两三小时。因此,我会在记录下来,以加深印象,可为自己及他人以后少走弯路。

 

    在上篇《Andriod开发环境搭建》中,已经搭建好开发环境并创建了一个Android 2.2的模拟器。下面就直接开始创建工程了。

1,新建Android项目

    打开Eclipse,点击菜单 New -- Other...,选择Android -- Android Project,如下图:

    http://s10/middle/4e08922bg759fcd245849&690

    点击“Next”按钮,弹出下图提示框,输入相关的内容:

    http://s13/middle/4e08922bg983e130608ac&690
    各参数说明:

    Project name :工程文件夹的名称,这里输入:HelloWorld;
    Build target :用于编译工程的sdk版本,这里选择:Android 2.2;
    Application name :显示在程序上的标题,这里输入:Hello,World;
    Package name :Java包的名称,这里输入:study.android.HelloWorld;
    Create activity :该工程的activity,可以将其理解为工程的具体界面管理类,这里输入:HelloWorld;
    Min sdk version :该工程支持的sdk最低版本,这里输入:8。
    输入完成后,点击“Finish”,创建工程完成!
 

2,编写代码

    目录结构,此处略。

    代码非常简单,打开src\study.android.HelloWorld\HelloWorld.java

    修改为:

    package study.android.HelloWorld;

 

    import android.app.Activity;
    import android.os.Bundle;
   
import android.widget.TextView;

 

    public class HelloWorld extends Activity {
       
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            TextView tv = new TextView(this);
            tv.setText("Hello, World!");
            setContentView(tv);
        }
    }

    注意红色部分的代码,其他代码都是默认生成了。

    其他文件,也不用做任何修改!

   

3,运行测试

    创建工程,编写代码,都是很顺利,也很快。运行测试,让我费了不少心思!

     右键项目HelloWorld -- Run As -- 1 Android Application,即会打开模拟器。待模拟器启动成功后,会显示在锁定界面,点击模拟器右边的“MENU”按钮,即会运行测试的程序,即HelloWorld。

    (1)接下来,问题来了,没有出来梦想中的HelloWorld,窗体竟是一片漆黑!如下图:
http://s5/middle/4e08922bg983e706a4274&690

    因为完全没有经验,根本不知道问题在哪里。

    检查了代码,没有什么发现问题。

    查看Eclipse的Console,出现如下的结果:

    http://s15/middle/4e08922bg983e7fd0499e&690
    从这里看,有提示“Success”,感觉应该成功了。但后面的“Killed”,又感觉像是结束了进程。就是感觉可能有问题,但却不知道问题在哪里!

    (2)上网百度一下,看到几篇文章的步骤,跟我的完全一样。包括官方的文档:Android Developmers 上的"Hello,World" ,做法也是跟我的一样,倒腾了半小时,此时确定不了问题的原因。

 

    (3)会不会是工程创建得有什么问题?于是重新创建一个,再次输入工程名等参数值,以及再代编写代码,启动模拟器测试,又倒腾了半小时,结果依然是让人失望。

 

    找不到问题,只好暂时放一放,先出去买点东西,透透气,哈哈!

 

    (4)会不会是版本的问题呢?于是,再重新创建一个工程,Target选择:Android 1.6,Min SDK Version 输入:4。

    接着,再次输入代码。

    接下来,配置模拟器:点击Eclipse的菜单Window -- Android SDK and AVD Manager 。在Android SDK and AVD Manager 窗口中,选择左边的“Virtual Device”,点击右边的“New...”按钮,添加一个Android 1.6的模拟器,如下图:

http://s8/middle/4e08922bg983ecec669b7&690
    输入Name:android16,选择Target为:Android 1.6 - API Level 4,其他默认,点击“Create AVD”按钮,这样Android16就显示在列表当中,关闭Android SDK and AVD Manager 窗口。

    右键项目,选择Run As -- Android Application,待模拟器启动后,点击模拟器的“Menu”按钮,这次,成功地看到了“HelloWorld”。哈哈,看到了黎明的希望!

    到底是原因,造成了Android 2.2不能正常显示,比较了成功与失败时Eclipse的Console信息,内容如下:

    [2010-12-25 22:49:40 - HelloWorld] Android Launch!
[2010-12-25 22:49:40 - HelloWorld] adb is running normally.
[2010-12-25 22:49:40 - HelloWorld] Performing study.HelloWorld.HellWorldActivity activity launch
[2010-12-25 22:49:40 - HelloWorld] Automatic Target Mode: launching new emulator with compatible AVD 'android16'
[2010-12-25 22:49:40 - HelloWorld] Launching a new emulator with Virtual Device 'android16'
[2010-12-25 22:49:41 - HelloWorld] New emulator found: emulator-5554
[2010-12-25 22:49:41 - HelloWorld] Waiting for HOME ('android.process.acore') to be launched...
[2010-12-25 22:51:20 - HelloWorld] HOME is up on device 'emulator-5554'
[2010-12-25 22:51:20 - HelloWorld] Uploading HelloWorld.apk onto device 'emulator-5554'
[2010-12-25 22:51:20 - HelloWorld] Installing HelloWorld.apk...
[2010-12-25 22:51:35 - HelloWorld] Success!
[2010-12-25 22:51:35 - HelloWorld] Starting activity study.HelloWorld.HellWorldActivity on device emulator-5554
[2010-12-25 22:51:46 - HelloWorld] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=study.HelloWorld/.HellWorldActivity }
[2010-12-25 22:55:40 - Emulator] emulator: warning: opening audio input failed
[2010-12-25 22:55:40 - Emulator]
[2010-12-25 22:57:24 - HelloAndroid] ------------------------------
[2010-12-25 22:57:24 - HelloAndroid] Android Launch!
[2010-12-25 22:57:24 - HelloAndroid] adb is running normally.
[2010-12-25 22:57:24 - HelloAndroid] Performing study.HelloAndroid.HelloAndroidActivity activity launch
[2010-12-25 22:57:24 - HelloAndroid] Automatic Target Mode: launching new emulator with compatible AVD 'android2_2'
[2010-12-25 22:57:24 - HelloAndroid] Launching a new emulator with Virtual Device 'android2_2'
[2010-12-25 22:57:25 - HelloAndroid] New emulator found: emulator-5554
[2010-12-25 22:57:25 - HelloAndroid] Waiting for HOME ('android.process.acore') to be launched...
[2010-12-25 22:57:59 - HelloAndroid] HOME is up on device 'emulator-5554'
[2010-12-25 22:57:59 - HelloAndroid] Uploading HelloAndroid.apk onto device 'emulator-5554'
[2010-12-25 22:58:00 - HelloAndroid] Installing HelloAndroid.apk...
[2010-12-25 22:58:43 - HelloAndroid] Success!
[2010-12-25 22:58:43 - HelloAndroid] Starting activity study.HelloAndroid.HelloAndroidActivity on device emulator-5554
[2010-12-25 22:58:44 - HelloAndroid]
ActivityManager: [1]   Killed                  am start -n stud...

    注意红色部分,导致了两次完全不同的结果。

    为了进一步确定是否因为版本的原因。我进一步创建了Android 2.1与Android 2.3再次测试。当然,这里没有创建新的工程,而是通道修改配置来完成。a. 修改default.properties文件,设置target=android-7(android-7就是android 2.1,android-9 就是android 2.3)   b. 修改AndroidManifest.xml文件, <uses-sdk android:minSdkVersion="7" />,如果default.properties文件中的target=android-9,这里也相应要改成android:minSdkVersion="9"。同时,我们在Android SDK and AVD Manager 窗口,添加Android 2.1和Android 2.3的模拟器。如下图:

http://s5/middle/4e08922bg983f208c3764&690

    倒腾了半小,测试Android 2.1和Android 2.3都能够正常显示。显示结果如下图:

http://s11/middle/4e08922bg759fe8be308a&690

    这样看来,还不是版本的问题,而是模拟器的问题。通过比较,发现Android 2.2的模拟器,有一处不其他版本的模拟器不同,多配置了一个SD Card 的Size 为 :8000(MiB),如 下图:

http://s16/middle/4e08922bg983f2de4462f&690

    删除现有的模拟器,重新创建一个Android 2.2的模拟器,不再配置SD Card 的Size参数。再次运行,模拟器启动后,就可以看到梦想中的“Hello,World!”了。

 

    至此,问题的原因,就已经清楚了。至于为什么配置SD Card后,会出现这个问题,以后再找继续解决了!

 

   一个小小的问题,带来了不少的问题了,也花费了几个小时,去解决问题,总结问题!

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有