2011-07-13 105 views
1

創建自定義類(活動)的Intent時,出現Java.Lang.NoClassDefFoundError錯誤。根據this tutorial這意味着在運行時找不到類。當項目成功編譯時,它肯定會在設計階段找到。我曾嘗試在Project - > Properties - > Reference Paths中手動設置程序集的路徑,但錯誤不會消失。我嘗試了一個更簡單的項目,在父活動的同一個文件上使用自定義的Activity,並且運行良好。我應該在Android的Mono中設置Java的ClassPath,或者我應該怎麼做才能解決這個問題?如何在Monodroid中設置Java ClassPath

在此先感謝。

回答

1

這不是類路徑問題。您需要將類添加到您的清單文件,例如:

<activity android:name="yourpackage.YourClass" android:label="@string/your_title" /> 

巴里

+0

如果我把它放在標籤之間,我甚至無法啓動應用程序。如果我把它放在清單中的其他地方,我會得到相同的NoClassDefFoundError錯誤。 –

+0

您必須在標記中犯了一個小錯誤,因爲向清單中正確添加活動絕不應導致問題。發佈您使用的標籤,以及啓動時的異常。 –

+1

謝謝巴里。由於Xamarin本週再次獲得了Android上Mono的控制權,我將這個問題帶到了官方郵件列表中:http://mono-for-android.1047100.n5.nabble.com/Unable-to-find-library-td4611576。這似乎可能是一個Monodroid錯誤,他們正在調查它。 –

1

聽起來好像你還沒有註冊與清單中的活動。您可以手動做到這一點,但更好的方法是用ActivityAttribute來裝飾你的活動類,像這樣:

[Activity(Label = "Activity Label", MainLauncher = true)] 
public class CustomActivity : Activity 

一旦你這樣做,清單項會爲您生成。

+0

我沒有使用MainLauncher屬性,因爲我的Activity在ActivityGroup中使用。它也沒有幫助。 –