2010-05-04 78 views
5

我是Eclipse和Android的全新開發者,但對Java有所瞭解。前面已經說過,我試圖使用最新的Eclipse(Galieo)和2.1 Android SDK在開發人員網站上遵循'Hello Android'教程,我使用的是運行Snow Leopard(OS X 10.6)的Macintosh。我有一個默認的虛擬設備(儘管我的目標實際上是針對像我自己的HTC Incredible那樣的手機,它具有snapdragon處理器,當然還有智能手機中最新的配件)。「Hello Android」教程問題

一切似乎都會好起來,直到我去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不兼容?我真的很感謝任何幫助解決這個問題,因爲我非常有興趣在這個平臺上開發。

感謝信,

邁克ñ勞倫斯,堪薩斯

+0

QuickDraw - > Quartz警告就是這樣;當我編寫教程時,我也遇到了這個問題,並認爲它對我在模擬器中遇到的問題負責 - 但我只是沒有足夠的時間等待模擬器啓動。所以如果你擔心Quartz,不要。 – 2010-05-04 15:28:15

回答

3

沒有直接的經驗,但是這似乎是一個反覆出現的問題:

This thread提示:

你的天堂」不要讓模擬器一直啓動。啓動它,然後等待,直到看到桌面,就像在真實的手機上一樣。

This one提到(我懷疑點1是不是對你的關心):

  1. 得到更多的內存。我運行的是256 MB(我認爲它低於最低要求),現在只升級到1024 MB(即將到來),應用程序現在開始正常運行。儘管我仍然在模擬器中看到一些錯誤消息,但他們似乎並沒有做任何事情。

  2. 從命令行安裝。這是一個有點laborius,但您可以啓動(假設<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

也許模擬器運行這麼慢,和亞洲開發銀行的服務器,或像「DDMS」另一個組件是一個有點「絕望」,因爲看起來它等待模擬器來初始化一些應用程序。
但模擬器運行緩慢,Eclipse中的控制檯發送消息:emulator-5554 disconnected! Cancelling 'com.android.hello.HelloAndroid' launch!;,仿真程序繼續正常運行並啓動它的系統,但不運行我構建的應用程序。

因此,對於這個問題我運行程序,仿真器打開時,我回去DDMS透視和設備標籤y按控制檯前的按鈕「restart adb server」偏食顯示我的「emulator-5554 disconnected!消息「
我這樣做了好幾次,直到模擬器終於啓動操作系統。
在模擬器上啓動操作系統之後,eclipse不會發送那個斷開連接錯誤,並「發送」我已經創建的應用程序,同時控制檯會顯示關於此的消息。
然後終於出現在手機「你好,Android」上。

+0

模擬器在最後一次輸入之後實際上死於Android_屏幕上。我會嘗試adb的想法,看看是否有幫助,但更多的內存可能是爲了...雖然我的機器有2 GB - 它是一個月大的Mac Mini :-) – 2010-05-04 07:21:07

+0

從命令行運行模擬器,它死於分段故障。 – 2010-05-04 07:39:13

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代碼是通過將Project Build Target從1.1更改爲1.5。

+0

我相信我的目標(主要是安裝了Android 2.1的platformm)沒問題。最後一行出現時,我仍然會'模擬器意外退出'。添加崩潰報告信息到原始問題。嘗試this.setTextView建議。 – 2010-05-04 07:31:53

0

無論出於何種原因,我停下來獲得分割故障時,我說:

this.setContentView(tv); 

的「這個」看似解決了問題。如果您嘗試在沒有任何.apk文件的情況下運行模擬器,則會發生seg故障。 (我也是從命令行獲得的)。我希望這個教程能夠更新。

+0

什麼是「電視」?它是未定義的。 – 2012-06-01 06:28:02

+0

@AmySukumunu它是在Hello Android教程中定義的TextView。 – stalepretzel 2012-06-23 03:46:16

1

這似乎是一個計時問題。出於某種原因,Eclipse嘗試在「準備就緒」之前將該應用程序加載到仿真器上。我不知道爲什麼會出現這種情況,但我確實找到了解決方法:只需在運行應用程序之前從命令行啓動模擬器。

  1. 開始清潔通過關閉的Eclipse導航到Android的SDK-mac_86(也許是OP沒有退出的Eclipse之前,他試圖通過命令行來運行?)
  2. 開始通過終端模擬器/工具目錄,鍵入:

    ./emulator -avd my_avd

  3. 打開Eclipse並嘗試使用相同的步驟再次運行教程像以前

  4. 應該打開一個對話框,詢問您是要啓動新的AVD還是使用已經運行的AVD - 選擇使用已經運行的AVD。
0

當我嘗試使用4.0 AVD運行模擬器時,我遇到了同樣的問題。它曾經在啓動屏幕上崩潰,並在控制檯中顯示「分段故障」。我能夠通過將AVD的SD卡尺寸從32MB增加到1GB來解決這個問題。

1

我所做的就是將AVD啓動時出現的圓圈移動到解鎖位置,並且出現了'Hello,Android'!

0

See Related post

Another related post

這個工作在Linux上對我說:

  • 運行模擬器(等待模擬器的主屏幕加載)
  • 單擊窗口>打開透視圖> DDMS
  • 在Devices面板中,點擊下拉菜單> Reset adb
  • 運行項目