Java Android自定义视图类未找到

Java Android自定义视图类未找到,java,c#,android,xml,xamarin,Java,C#,Android,Xml,Xamarin,我肯定这是个愚蠢的问题,但我就是到处找不到答案。我正在尝试在Android中创建一个自定义视图XML元素(使用Xamarin,所以从技术上讲它是C#,尽管我认为这在这里并不重要)。我找到了很多教程,但似乎没有人能解释这条路到底从哪里来。例如,谷歌的例子如下所示: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/androi

我肯定这是个愚蠢的问题,但我就是到处找不到答案。我正在尝试在Android中创建一个自定义视图XML元素(使用Xamarin,所以从技术上讲它是C#,尽管我认为这在这里并不重要)。我找到了很多教程,但似乎没有人能解释这条路到底从哪里来。例如,谷歌的例子如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:custom="http://schemas.android.com/apk/res/com.example.customviews">
 <com.example.customviews.charting.PieChart
     custom:showText="true"
     custom:labelPosition="left" />
</LinearLayout>

com.example.customview.charting从何而来?我所找到的示例中没有一个能够解释此路径是如何创建的。我发现有人说这是包名,但我的包名看起来一点也不像(可能是我在生成文件时做错了什么?)


现在我的布局中有这样一个:

<AndroidDemo.AndroidDemo.DragRectView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/dragRect" />

这将导致一个Android.View.InflateException和一个java.lang.ClassNotFoundException


我确信我的DragRectView(我的类)的路径是错误的;有谁能告诉我如何找出它是什么吗?

如果您在com.example.customviews.charting中没有PieChart类,您将得到ClassNotFoundException

在自定义视图类文件中,查找以下代码行以了解您所在的包:

package com.mypackage;
如果它不在那里,你就在默认包中,我建议添加它以使生活更轻松

你的班级应该是这样的

package com.mypackage;
public class PieChart extends View {
    ...Your Implementation of PieChart goes here...
}

在XML布局中使用自定义视图时,使用完全限定的类名(包括包名)。使用自定义视图类所在的包名。

com.example.customviews.charting从何而来?这就是您拥有CustomView PieChart的包名,为什么包名为
AndroidDemo.AndroidDemo
。你应该有好名字来避免confusion@Raghunandan我不知道,这是我创建项目时默认设置的。仅仅改变这一行会改变包名吗,还是我必须做些别的事情。我明白,我的观点是我不知道如何获得代码的等效路径。在java类文件的顶部,会有一行代码与包一起:package com.mypackage;要访问com.mypackage包中的特定文件,请使用com.mypackage.myfile在哪里找到该文件?我不知道它装在什么包裹里。
package com.mypackage;
public class PieChart extends View {
    ...Your Implementation of PieChart goes here...
}