当前位置: 首页 > 知识库问答 >
问题:

inflating类片段时出错,Xamarin

向杜吟
2023-03-14

我有一个错误的膨胀到一个布局的片段。我正在使用的IDE是Xamarin,这是一个用编程语言C#开发的android开发工具

我在这个目录中的类上得到错误

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.App.Activity.SetVoidMethod (intptr,intptr,intptr,Android.Runtime.JValue[]) 中 Android.Runtime.nv.SetContentView (intptr,intptr,Android.Runtime.JValue[]) [0x00084] in /Users/builder/data/lanes/monodroid-mlion-monodroid-4.12-series/a1e3982a/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:895 中的 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] in c:\Users\Jacob\Dropbox\2ICT\2de Semester\Projecten 1\Source\Jacob\JeugdbewegingApp\JeugdbewegingApp\Presentation\NewsFeed.cs:24 at 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/generated/Android.App.Activity.cs:2178 at at (wrapper dynamic-method) object.08e9bb04-13ac-4397-9345-6bea3473292f (intptr,intptr,intptr) at --- end of managed exception stack trace --- at
android.view.InflateException: 二进制 XML 文件行 #1: 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713) at at android.view.LayoutInflater.rInflate(LayoutInflater.java:755
) at at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at

android.view.LayoutInflater.inflate(LayoutInflater.java:353) at
com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290) at android.app.Activity.setContentView(Activity.java:1929) at at jeugdbewegingapp.NewsFeed.n_onCreate(Native Method) at at jeugdbewegingapp.NewsFeed.onCreate(NewsFeed.java:28) at android.app.Activity.performCreate(Activity.java:5231) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) at 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 at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at at android.app.ActivityThread.main(ActivityThread.java:5017) at java.lang.reflect.Method.invokeNative(Native Method) at at
java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) at at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method) at 原因:android.app.Fragment$InstantiationException: 无法实例化片段 jeugdbewegingapp/jeugdbewegingapp/presentation/MainMenu: 确保类名存在,是公共的,并且有一个空的构造函数,该构造函数是公共的 at android.app.Fragment.instantiate(Fragment.java:597) at at android.app.Fragment.instantiate(Fragment.java:561) at android.app.Activity.onCreateView(Activity.java:4778) atandroid.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689) at ...22 更多在 原因: java.lang.ClassNotFoundException: 在路径上找不到类 “jeugdbewegingapp/jeugdbewegingapp/presentation/MainMenu” 在路径上: DexPathList[[zip file “/data/app/JeugdbewegingApp.JeugdbewegingApp-1.apk”],nativeLibraryDirectory=[/data/app-lib/JeugdbewegingApp.JeugdbewegingApp-1, /vendor/lib, /system/lib]] at at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at at java.lang.ClassLoader.loadClass(ClassLoader.java:497) at atjava.lang.ClassLoader.loadClass(ClassLoader.java:457) at at android.app.Fragment.instantiate(Fragment.java:583) at ...还有 25 个

如果有人能帮助我,我将不胜感激!

共有1个答案

贺山
2023-03-14

class 属性应包含类的完整命名空间,而不是路径。正如您所建议的,命名空间必须全部小写,因为 Java 使用小写命名空间。Xamarin 为自定义类生成的包装类中的命名空间将为小写。实际的类名将保持不变,因此不需要小写。

因此,假设您的名称空间是< code>JeugdbewegingApp。JeugdbewegingApp . presentation . main menu ,您的片段xml应该如下所示...

<fragment
    class="jeugdbewegingapp.jeugdbewegingapp.presentation.MainMenu"
    android:id="@+id/menu_fragment"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />
 类似资料:
  • 我正在尝试我的手和Android应用程序开发。我目前正在使用Eclipse(我不记得版本,无论最新版本是什么)。我已经跨过了一座桥梁,我似乎无法理解我做错了什么。我正在尝试使用Google Maps V2 API。我浏览了几个文档并尝试了几种技术,所有这些都导致了相同的错误: 我已经连续两天把脸贴在钥匙上,试图弄明白我做错了什么。 我做过的事情: 从一个空白活动开始。 项目- 我试过很多类似问题的

  • 最后是日志: 我们非常非常感谢所有的帮助。如果还有什么我可以补充的,请告诉我?

  • 下面是我的布局: 编辑(已解决):最后,我找到了解决方案。应该在JAVA文件mapFragment中添加onDestroyView()方法,如下所示:

  • 我正在写一个android应用程序,其中包括一个谷歌地图片段。当我将地图片段从包含它的活动中排除时,应用程序运行良好。当我包含映射片段时,我会得到下面blockquote中引用的异常。最让人恼火的是,就在几周前,这还没有发生。这个活动运行了几个星期,然后我更新了android studio,现在我得到了这个例外。我已经在google和stackoverflow上搜索了几个解决方案,但没有任何效果。

  • 这里的主要问题是:上面的代码在几乎所有的设备(受刺激的设备,或者一些真实的设备)上都能顺利运行。但当我在三星S3上运行时。它注意到这个错误: 请告诉我如何修复错误,谢谢:)

  • 我不知道,为什么我会有这个问题。我添加了行来构建gradle,但它仍然不起作用。出什么事了?