我是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,堪萨斯州
答案 0 :(得分:3)
没有直接的经验,但这似乎是一个经常出现的问题:
This thread建议:
你没有让模拟器一直启动。启动它,然后等到你看到桌面,就像在真正的手机上一样。
This one提到(我怀疑第1点不是你的问题):
获取更多内存。我运行的是256 MB(我相信它低于最低要求),今天刚刚升级到1024 MB(很长一段时间),应用程序现在开始正常。虽然我仍然在模拟器中看到一些错误消息,但它们似乎并没有真正做任何事情。
- 醇>
从命令行安装。这有点劳动,但你可以从命令行启动一个模拟器(假设
<android sdk path>\tools
被添加到你的PATH变量中)只需输入模拟器,然后浏览到your_app_here.apk
的位置,然后执行
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会在“准备好”之前尝试将应用程序加载到模拟器上。我不确定为什么会这样,但我确实找到了解决办法:在运行应用程序之前从命令行启动模拟器。
通过导航到 android-sdk-mac_86 / tools 目录并键入:
,通过终端启动模拟器./ emulator -avd my_avd
打开Eclipse并尝试使用与之前相同的步骤再次运行教程
答案 3 :(得分:1)
我所做的是移动AVD启动到解锁位置时出现的圆圈,那里是'Hello,Android'!
答案 4 :(得分:0)
无论出于何种原因,我在添加时停止了分段错误:
this.setContentView(tv);
“这个”似乎解决了这个问题。如果您尝试在没有我假设的任何.apk文件的情况下运行模拟器,则会发生seg错误。 (我也是从命令行获得的)。我希望教程能够更新。
答案 5 :(得分:0)
当我尝试使用4.0 AVD运行模拟器时,我遇到了同样的问题。它曾经在启动屏幕崩溃并在控制台中显示“分段故障”。我能够通过将AVD的SD卡大小从32MB增加到1GB来解决这个问题。
答案 6 :(得分:0)
这适用于我的Linux: