代码之家  ›  专栏  ›  技术社区  ›  fortepian

Xamarin自定义视图ClassNotFoundException

  •  1
  • fortepian  · 技术社区  · 8 年前

    我是Xamarin的新手。我试图在Android应用程序中创建自己的视图,但它会在构造函数上抛出ClassNotFoundException。我在搜索类似的问题,但没有找到类似的问题(只有 here 是我认为可能非常相似的东西,但事实上并没有解决——答案告诉我们要编辑java文件,但在Xamarin中工作时是不可能的)。这是我的主要活动代码。反恐精英:

    using Android.App;
    using Android.OS;
    
    namespace App5
    {
        [Activity(Label = "App5", MainLauncher = true)]
        public class MainActivity : Activity
        {
            protected override void OnCreate(Bundle savedInstanceState)
            {
                base.OnCreate(savedInstanceState);
                View1 view = new View1(this);
                SetContentView(view);
                //SetContentView(Resource.Layout.Main);
             }
        }
    }
    

    和视图1。反恐精英:

    using Android.Content;
    using Android.Views;
    
    namespace App5
    {
        public class View1 : View
        {
            public View1(Context context)
               : base(context)
            {
            }
        }
    }
    

    以下是例外情况的描述:

    Java语言Lang.ClassNotFoundException:在路径:DexPathList[[zip文件]/data/app/App5.App5-1/base.apk“],NativeLibraryDirectory=[/数据/应用/App5.App5-1/lib/arm64,/系统/假libs64,/数据/应用/App5.App5.App5-1/base.apk!/lib/arm64-v8a,/系统/lib64,/供应商/lib64]]

    非常奇怪的是,当我对继承自视图和继承构造函数进行注释时,当然还有将ContentView设置为资源中的布局时,系统可以找到这个类,并且应用程序不会崩溃。

    我正在使用VisualStudio 2015,并安装了最新稳定版本的Xamarin。

    1 回复  |  直到 8 年前
        1
  •  3
  •   W0RT4    8 年前

    尝试删除bin和obj并重建项目。在上次visual studio更新之后,我开始了此操作。另一个想法是杀死msbuilld过程。