Android 由于错误的md5,未找到类异常
我正在构建一个Xamarin android应用程序 在xamarin更新之后,我得到一个构建错误。我不知道这是否有任何关系,但是以前的工作现在抛出了一个异常: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
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
{
}