Android 由于错误的md5,未找到类异常

Android 由于错误的md5,未找到类异常,android,.net,xamarin,build,classnotfoundexception,Android,.net,Xamarin,Build,Classnotfoundexception,我正在构建一个Xamarin android应用程序 在xamarin更新之后,我得到一个构建错误。我不知道这是否有任何关系,但是以前的工作现在抛出了一个异常:ClassNotFoundException。该类是存在的,并且是适当的活动。这方面没有任何变化 我在这方面见过很多这样的线程,但它们都建议清理解决方案,删除构建文件夹等,不幸的是,这对我没有帮助 我意识到在异常消息中 W/monodroid(4201):JNIEnv.FindClass(Type)捕获到意外异常:Java.Lang.Cl

我正在构建一个Xamarin android应用程序

在xamarin更新之后,我得到一个构建错误。我不知道这是否有任何关系,但是以前的工作现在抛出了一个异常:
ClassNotFoundException
。该类是存在的,并且是适当的活动。这方面没有任何变化

我在这方面见过很多这样的线程,但它们都建议清理解决方案,删除构建文件夹等,不幸的是,这对我没有帮助

我意识到在异常消息中
W/monodroid(4201):JNIEnv.FindClass(Type)捕获到意外异常:Java.Lang.ClassNotFoundException:md56629fa8edd4a41a77563f74c5c5f792.MainActivity
md5部分与MainActivity.class所在的文件夹不同(
md56b5cfc81a7b5c227a0c9a4dcb7dab856
)。当我删除该文件夹时,将在生成过程中生成一个新文件夹。它的md5又不同了。但异常再次出现,要求与以前相同的旧md5

我的问题是:

1.)我该怎么做才能让JNIEnv找到正确的md5

2.)这些md5是如何生成的,为什么


谢谢。

Xamarin会为所有具有Android可调用包装器(ACW)的类型生成MD5总和,除非您明确指定名称。我想这样做是为了避免与其他类型的冲突,这些类型可能存在于相同的包名中。这些是在构建时生成的

为了在继承自
Java.Lang.Object
的类型上设置您自己的名称,这些类型包括
活动
适配器
视图
等。您只需向类添加一个
Register
属性:

[Register("my.cool.package.MyTypeName")]
public class MyTypeName : SomeJavaType
{

}
对于诸如
活动
之类的类,您也可以使用
活动
属性中的
名称
属性:

[Activity(Label = "MyActivity", Name = "my.cool.package.MyActivity")]
public class MyActivity : Activity
{

}