首页 文章

Xamarin Forms错误:Java.Lang.NoClassDefFoundError:android.support.graphics.drawable.VectorDrawableCompat

提问于
浏览
6

在Android模拟器上开始调试我的项目时,我收到此错误:

Java.Lang.NoClassDefFoundError:android.support.graphics.drawable.VectorDrawableCompat

在这段代码:

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工作室文件有关(例如gradle文件) .

我检查了'bundle'的内容,它在出错时似乎是null但我不确定这是否导致错误 .

我正在使用Xamarin表格PCL .

4 回答

  • 0

    如果项目路径太长,则可能会在多个类中发生此错误,因为它会经历操作系统字符长度的限制 .

    长路径示例:

    C:\ Users \ Username \ Documents \ Visual Studio xxxx \ Projects \ Project Name

    好路径示例:

    C:\项目\项目名

    编辑 - 添加了包的外观:

    Packages Pic

  • 0

    错误 Java.Lang.NoClassDefFoundError: 表示您也缺少're missing a class. It tells you which class you': android.support.graphics.drawable.VectorDrawableCompat . 我自己没有使用过Xamarin,但他们的文档描述了如何在C#代码中使用use Java classes . 一旦导入包含类 android.support.graphics.drawable.VectorDrawableCompat (VectorDrawableCompat.java,我认为是android.support.graphics.drawable?)的包,您的代码就应该运行 .

  • 1

    我不确定这是否会对你有所帮助,但我们会看看MainActivity的声明方式 .

    你的例子有:

    • public class MainActivity:global :: Xamarin.Forms.Platform.Android.FormsAppCompatActivity

    但在我的代码中,我有:

    • public class MainActivity:Xamarin.Forms.Platform.Android.FormsApplicationActivity

    看看这对创业公司是否有所作为 . 如果必须使用FormsAppCompatActivity,那么请查看将Api级别更改为支持的最高级别是否有所不同 .

    您是否在“输出”窗口中显示任何日志,显示Xamarin诊断程序 .

  • 0

    我有类似的错误 . 我解决了它安装最新版本的JDK并在Visual Studio中选择新文件夹 .

    Xamarin Setting on Visual Studio 2015

相关问题