2014-04-07 116 views
3

我有一個錯誤將片段膨脹到佈局。 我正在使用的IDE是Xamarin,它是一種使用C#編程語言的Android開發工具。錯誤的膨脹類片段,Xamarin

我上classwhich錯誤的是這個目錄

JeugdbewegingApp \ JeugdbewegingApp \演示\ MainMenu.cs

在下面的代碼錯誤是由該片段類名扔了進去。 此代碼來自NewsFeed.axml佈局文件。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <Button 
     android:id="@+id/myButton" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="test" /> 
    <TextView 
     android:text="Text" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/textView1" /> 
    <fragment 
     class="jeugdbewegingApp/jeugdbewegingApp/presentation/MainMenu" 
     android:id="@+id/menu_fragment" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" /> 
</LinearLayout> 

我知道需要小寫寫入但您的文件和目錄需要使用小寫字母命名空間的?

我一直停留相當長一段時間,現在並不能找到一個解決方案,我使用的教程是 http://docs.xamarin.com/guides/android/platform_features/fragments/part_1_-_creating_a_fragment/

完整的錯誤是這樣的

Android.Views.InflateException :二進制XML文件線#1:錯誤 充氣類片段在 Android.Runtime.JNIEnv.CallNonvirtualVoidMethod (IntPtr的,IntPtr的,IntPtr的,Android.Runtime.JValue [])[0x00084]在 /用戶/助洗劑/數據/泳道/ MonoDroid的-MLION-MonoDroid的-4.12系列/ a1e3982a /源/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:895 at Android.App.Activity.SetContentView(int)[0x00070] in /Users/builder/data/lanes/monodroid-mlion- monodroid-4.12-series/a1e3982a/source/monodroid/src/Mono.Android/platforms/android-19/src/generated/Android.App.Activity.cs:4252 at JeugdbewegingApp.NewsFeed.OnCreate(Android.OS.Bundle )[0x00009]在 C:\用戶\雅各布\收存箱\ 2ICT \ 2DE學期\ Projecten 1 \源\雅各布\ JeugdbewegingApp \ JeugdbewegingApp \演示\ NewsFeed.cs:24 在Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ ( intptr,intptr,intptr)[0x00011] in /Users/builder/data/lanes/monodroid-mlion-monodroid-4.12-series/a1e3982a/source/monodroid/src/Mono.Android/platforms/android-19/src/生成/ Android.App.Activity.cs:217 8 at at(包裝動態方法) object.08e9bb04-13ac-4397-9345-6bea3473292f(intptr,intptr,intptr)at ---管理的異常堆棧跟蹤結束---
at android.view.InflateException :二進制XML文件行#1:在在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713) 處android.view.LayoutInflater.rInflate(LayoutInflater.java:755)錯誤 充氣類片段
在在android.view.LayoutInflater.inflate(LayoutInflater.java:492)
處android.view.LayoutInflater.inflate(LayoutInflater.java:397)
處android.view.LayoutInflater.inflate(LayoutInflater.java:353 )
處 com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290) 處android.app.Activity.setContentView(Activity.java:1929)處 jeugdbewegingapp.NewsFeed.n_onCreate (Native Method)at jeugdbewegingapp.NewsFeed.onCreate(NewsFeed.java:28)at android.app.Activity。performCreate(Activity.java:5231)處 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 處 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 處 android.app .ActivityThread.handleLaunchActivity(ActivityThread.java:2245) at android.app.ActivityThread.access $ 800(ActivityThread.java:135)
at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)at android.os.Looper.loop(Looper.java:136)at android.app.ActivityThread.main(ActivityThread.java: 5017) at java.lang.reflect.Method.invokeNative(Native Method)at java.lang.reflect.Method.invoke(Method.java:515)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller。運行(ZygoteInit.java:779) at at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at at dalvik.system.NativeStart.main(Native Method)at: android .app.Fragment $ InstantiationException:無法實例化 片段jeugdbewegingapp/jeugdbewegingapp/presentation/MainMenu:make 確定類名存在,是公共的,並且有一個空的構造函數,它在android.app.Fragment.instantiate .java:597) at at android.app.Fragment.instantiate(Frag我們可以使用android.app.Activity.onCreateView(Activity.java:4778)at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689) at ... 22更多由...引發:拋出java.lang.ClassNotFoundException: 沒有找到類 「jeugdbewegingapp/jeugdbewegingapp /演示/ MainMenu的」 關於路徑: DexPathList [zip文件 「/data/app/JeugdbewegingApp.JeugdbewegingApp-1.apk"],nativeLibraryDirectories = [/ data/app-lib/JeugdbewegingApp.JeugdbewegingApp-1, /vendor/lib,/ system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at at java.lang .ClassLoader.loadClass(ClassLoader.java:497)at java.lang.ClassLoader.load類(ClassLoader.java:457)維持在 android.app.Fragment.instantiate(Fragment.java:583)在... 25多個

如果有人可以幫助我將不勝感激!

回答

8

class屬性應該包含類的完整名稱空間,而不是路徑。正如您所建議的那樣,由於Java使用小寫名稱空間,名稱空間必須全部小寫。 Xamarin爲您的自定義類生成的包裝類中的名稱空間將爲小寫。實際的類名稱將保持不變,因此不需要小寫。

因此,假設您的命名空間是JeugdbewegingApp.JeugdbewegingApp.Presentation.MainMenu,您的片段XML應該是這樣的......

<fragment 
    class="jeugdbewegingapp.jeugdbewegingapp.presentation.MainMenu" 
    android:id="@+id/menu_fragment" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" /> 
+0

感謝您的回答!在我將它移動到另一個目錄後,我忘了更改片段的名稱空間... –