“Hello Android”教程问题

时间:2010-05-04 06:58:47

标签: android eclipse

我是Eclipse和Android的新手,但有点熟悉Java。话虽如此,我尝试使用最新的Eclipse(Galieo)和2.1 Android SDK从开发者网站上关注“Hello Android”教程,我在运行Snow Leopard(OS X 10.6)的Macintosh上。我有一个默认的虚拟设备(虽然我的目标实际上是用于我自己的HTC Incredible手机,它有snapdragon处理器,当然还有智能手机的所有最新装备)。

在我访问RUN>RUN然后选择“Android应用程序”之前,一切似乎都没问题。我的电脑旋转了一段时间,然后我看到两个错误。我已经粘贴了Eclipse的输出:

[2010-05-04 01:53:46 - HelloAndroid] ------------------------------
[2010-05-04 01:53:46 - HelloAndroid] Android Launch!
[2010-05-04 01:53:46 - HelloAndroid] adb is running normally.
[2010-05-04 01:53:46 - HelloAndroid] Performing com.example.helloandroid.HelloAndroid activity launch
[2010-05-04 01:53:46 - HelloAndroid] Automatic Target Mode: launching new emulator with compatible AVD 'myAVD'
[2010-05-04 01:53:46 - HelloAndroid] Launching a new emulator with Virtual Device 'myAVD'
[2010-05-04 01:53:58 - HelloAndroid] New emulator found: emulator-5554
[2010-05-04 01:53:58 - HelloAndroid] Waiting for HOME ('android.process.acore') to be launched...
[2010-05-04 01:53:59 - Emulator] 2010-05-04 01:53:59.501 emulator[10398:903] Warning once: This application, or a library it uses, is using NSQuickDrawView, which has been deprecated. Apps should cease use of QuickDraw and move to Quartz.
[2010-05-04 01:54:23 - HelloAndroid] emulator-5554 disconnected! Cancelling 'com.example.helloandroid.HelloAndroid activity launch'!

我从来没有看到模拟器中的文本和模拟器崩溃,并显示有关它意外退出的消息。

崩溃报告指出:

Process:         emulator [10472]
Path:            /Applications/android-sdk-mac_86/tools/emulator
Identifier:      emulator
Version:         ??? (???)
Code Type:       X86 (Native)
Parent Process:  eclipse [10468]

Date/Time:       2010-05-04 02:25:41.153 -0500
OS Version:      Mac OS X 10.6.3 (10D573)
Report Version:  6

Interval Since Last Report:          2558914 sec
Crashes Since Last Report:           4
Per-App Crashes Since Last Report:   2
Anonymous UUID:                      C5F178C1-5290-4CA9-AD6E-E9C4F5582754

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x000000001fd2f000
Crashed Thread:  3

注意:使用以下命令从命令行运行模拟器:

iainnitro-Mac:tools iainnitro$ ./emulator -avd myAVD

2010-05-04 02:49:23.011 emulator[10556:903] Warning once: This application, or a library it
uses, is using NSQuickDrawView, which has been deprecated. Apps should cease use of QuickDraw 
and move to Quartz.
Segmentation fault
iainnitro-Mac:tools iainnitro$

产生分段错误(如上所述,从终端输出)。因此,在可以显示任何内容之前,模拟器会自行消亡。

我尝试重新启动ADB流程。

实际代码是从教程中逐行进行的,但我还没有能够进入XML部分。

我不确定我的环境设置有什么问题,或者它是否与Snow Leopard不兼容?我真的非常感谢你解决这个问题的任何帮助,因为我对在这个平台上开发非常感兴趣。

感谢-你,

Mike N Lawrence,堪萨斯州

7 个答案:

答案 0 :(得分:3)

没有直接的经验,但这似乎是一个经常出现的问题:

This thread建议:

  

你没有让模拟器一直启动。启动它,然后等到你看到桌面,就像在真正的手机上一样。

This one提到(我怀疑第1点不是你的问题):

  
      
  1. 获取更多内存。我运行的是256 MB(我相信它低于最低要求),今天刚刚升级到1024 MB(很长一段时间),应用程序现在开始正常。虽然我仍然在模拟器中看到一些错误消息,但它们似乎并没有真正做任何事情。

  2.   
  3. 从命令行安装。这有点劳动,但你可以从命令行启动一个模拟器(假设<android sdk path>\tools被添加到你的PATH变量中)只需输入模拟器,然后浏览到your_app_here.apk的位置,然后执行

  4.   
adb install your_app_here.apk
  

如果从Eclipse启动模拟器,请先执行adb kill-service然后再adb start-service(或kill-server / start-server。不确定确切的命令。然后您的应用程序将安装在模拟器上。


另外(a bit old but might still be relevant

  

也许模拟器的运行速度太慢,而adb服务器或其他组件(如“DDMS”)有点“绝望”,因为它似乎在等待模拟器对某些HOME应用程序进行初始化。
  但是模拟器运行缓慢,Eclipse中的控制台发送消息:emulator-5554 disconnected! Cancelling 'com.android.hello.HelloAndroid' launch!;并且模拟器继续正常运行并启动它的系统,但是不运行我构建的应用程序。

     

因此对于这个问题我运行程序,当模拟器打开时,我回到DDMS透视中的eclipse,在设备选项卡中按下“restart adb server”按钮,然后控制台显示我消息“emulator-5554 disconnected!
  我做了几次,直到模拟器最终启动操作系统   在模拟器上启动操作系统后,eclipse不发送断开连接错误,并“发送”我构建的应用程序,控制台也会显示有关此消息的消息。
  然后终于出现在手机“Hello,Android”上。

答案 1 :(得分:1)

已经就两个提出的解决方案进行了讨论 http://code.google.com/p/android/issues/detail?id=724

Comment 17 by zachrcrowe, Jan 06, 2010 仅供参考 - 我必须在Hello Android示例中更改一行才能阅读 this.setContentView(TV);为了它的工作。如上所述,弃用 警告不应影响模拟器的功能。

Comment 18 by mfrony, Jan 14, 2010 我运行Hello Android示例时遇到了同样的问题。我解决它的方式和 可以运行我的第一个Android代码是将项目构建目标从1.1更改为1.5。

答案 2 :(得分:1)

这似乎是一个时间问题。出于某种原因,Eclipse会在“准备好”之前尝试将应用程序加载到模拟器上。我不确定为什么会这样,但我确实找到了解决办法:在运行应用程序之前从命令行启动模拟器。

  1. 关闭Eclipse开始清理(可能OP在尝试通过命令行运行之前没有退出Eclipse?)
  2. 通过导航到 android-sdk-mac_86 / tools 目录并键入:

    ,通过终端启动模拟器

    ./ emulator -avd my_avd

  3. 打开Eclipse并尝试使用与之前相同的步骤再次运行教程

  4. 应该打开一个对话框,询问您是要启动新的AVD还是使用已经运行的AVD - 选择使用已经运行的AVD。

答案 3 :(得分:1)

我所做的是移动AVD启动到解锁位置时出现的圆圈,那里是'Hello,Android'!

答案 4 :(得分:0)

无论出于何种原因,我在添加时停止了分段错误:

this.setContentView(tv);
“这个”似乎解决了这个问题。如果您尝试在没有我假设的任何.apk文件的情况下运行模拟器,则会发生seg错误。 (我也是从命令行获得的)。我希望教程能够更新。

答案 5 :(得分:0)

当我尝试使用4.0 AVD运行模拟器时,我遇到了同样的问题。它曾经在启动屏幕崩溃并在控制台中显示“分段故障”。我能够通过将AVD的SD卡大小从32MB增加到1GB来解决这个问题。

答案 6 :(得分:0)

See Related post

Another related post

这适用于我的Linux:

  • 运行模拟器(等待加载模拟器的主屏幕)
  • 点击窗口&gt; Open Perspective&gt; DDMS
  • 在“设备面板”中,点击下拉菜单&gt;重置adb
  • 运行项目