2014-04-07 130 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

感谢您的回答!在我将它移动到另一个目录后,我忘了更改片段的名称空间... –