当我在Android模拟器上开始调试我的项目时,我收到这个错误:
android.support.graphics.drawable.VectorDrawableCompat :Java.Lang.NoClassDefFoundError
在此代码中:
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle bundle)
{
//SQLitePCL.Batteries.Init();
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
string dbPath = FileAccessHelper.GetLocalFilePath("clocker.db3");
global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new Clocker.App(dbPath));
}
}错误发生在该行上:
base.OnCreate(bundle);我尝试在网上查看其他建议,但答案似乎与特定的Xamarin工作室文件有关,这些文件在我的项目中并不存在(i.g.gradle文件)。
我已经检查了'bundle‘的内容,在错误发生时它似乎是null,但我不确定这是否是导致错误的原因。
我正在使用Xamarin forms PCL。
发布于 2016-10-28 22:59:58
如果项目路径太长,可能会在几个类中出现此错误,因为它超过了操作系统字符长度的限制。
长路径示例:
C:\Users\用户名\Documents\Visual Studio xxxx\Projects\Project Name
好的路径示例:
C:\Projects\项目名称
编辑-添加了包的外观:

发布于 2016-10-28 22:49:40
错误Java.Lang.NoClassDefFoundError:表示缺少一个类。它还会告诉您遗漏了哪个类:android.support.graphics.drawable.VectorDrawableCompat。我自己没有使用过Xamarin,但他们的文档描述了如何在C#代码中使用use Java classes。一旦包含类android.support.graphics.drawable.VectorDrawableCompat的包(VectorDrawableCompat.java,我想它在android.support.graphics.drawable中?)导入后,您的代码应该会运行。
发布于 2016-11-02 03:41:03
我不确定这是否会对您有所帮助,但是看看MainActivity的声明方式。
你的例子有:
global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity:
但在我的代码中,我有:
Xamarin.Forms.Platform.Android.FormsApplicationActivity:
看看这对初创公司是否有影响。如果您必须使用FormsAppCompatActivity,那么看看将Api级别更改为支持的最高级别是否会有所不同。
是否有来自输出窗口Show Xamarin Diagnostics的日志。
https://stackoverflow.com/questions/40265127
复制相似问题