2012-03-08 52 views
2

我正在寫一個非常簡單的Android應用程序,由一個活動和一個服務構成。我做只有adb出錯

@Override 
public void onResume() 
{ 
    super.onResume(); 

    mServiceIntent = new Intent(this, RemoteIntegerService.class); 
    ComponentName name = startService(mServiceIntent); 
    TextView mainText = (TextView)findViewById(R.id.mainText); 
    mainText.setText(name == null ? "(null)" : name.getClassName()); 
} 

當我在我的Galaxy Tab或虛擬設備運行應用程序加載我的服務活動中,一切都看起來不錯,和的mainText讀取正確的類名。

但是當我使用adb的「通過usb功能調試」在Eclipse中啓動應用程序時,Intent構造函數(在真實設備以及虛擬設備中)出現錯誤。這裏的堆棧跟蹤:

RemoteInteger [Android Application] 
DalvikVM[localhost:8621]  
    Thread [<1> main] (Class load: RemoteIntegerService)  
     DexFile.defineClass(String, ClassLoader, int, ProtectionDomain) line: not available [native method] 
     DexFile.loadClassBinaryName(String, ClassLoader) line: 207 
     PathClassLoader.findClass(String) line: 211 
     PathClassLoader(ClassLoader).loadClass(String, boolean) line: 540 
     PathClassLoader(ClassLoader).loadClass(String) line: 500  
     RemoteIntegerActivity.onResume() line: 28 
     Instrumentation.callActivityOnResume(Activity) line: 1153 
     RemoteIntegerActivity(Activity).performResume() line: 4428 
     ActivityThread.performResumeActivity(IBinder, boolean) line: 2217 
     ActivityThread.handleResumeActivity(IBinder, boolean, boolean) line: 2255 
     ActivityThread.handleLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 1769 
     ActivityThread.access$1500(ActivityThread, ActivityThread$ActivityClientRecord, Intent) line: 122 
     ActivityThread$H.handleMessage(Message) line: 1002 
     ActivityThread$H(Handler).dispatchMessage(Message) line: 99 
     Looper.loop() line: 132 
     ActivityThread.main(String[]) line: 4025  
     Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method] 
     Method.invoke(Object, Object...) line: 491 
     ZygoteInit$MethodAndArgsCaller.run() line: 841 
     ZygoteInit.main(String[]) line: 599 
     NativeStart.main(String[]) line: not available [native method] 
    Thread [<8> Binder Thread #2] (Running) 
    Thread [<7> Binder Thread #1] (Running) 

編輯

  • 複製完整的堆棧跟蹤

  • 爲MyService - > RemoteIntegerService(真實姓名,配合好堆棧跟蹤)

編輯2 - 子問題

我找不到任何有關錯誤的信息。該程序停止,我看到堆棧跟蹤,但沒有別的。在Visual Studio中,我有一個彈出窗口來描述發生的異常。 Eclipse中是否有類似的東西?

+0

這似乎不像完整的堆棧跟蹤。頂部必須有幾條線。 – 2012-03-08 15:59:22

+0

我不明白這個:你用不同的方法來創建apk(除了eclipse)嗎?如果是這樣,你如何建立它? – 2012-03-08 16:06:23

+0

不,我使用Eclipse構建了apk,但是一旦我運行它(使用Eclipse),它就會一直安裝在設備上,所以我可以在沒有Eclipse的情況下像任何應用程序一樣運行它。當我在Eclipse中從adb運行時,我遇到了錯誤,當我在沒有Eclipse的情況下運行它時,它運行良好。 (但我希望能夠用Eclipse進行調試......) – Julien 2012-03-08 16:08:31

回答

1

隨着朱利安指出調試器可能與消息停止:

defineClass(String, ClassLoader, int, ProtectionDomain) line: not available [native method] 

因爲斷點已經在一個類中設置。刪除斷點解決了這個問題。