ListView System.NullReferenceException Xamarin

时间:2017-07-17 16:06:22

标签: c# android visual-studio xamarin

我尝试在ListViewMain.xml内使用ListViewRow(与此分开)但是在运行应用程序后我接收了>

  

System.NullReferenceException错误消息

我确定我之前运行过它并且有效。

我已尝试过其他帖子和其他来源的多种解决方案,但没有任何效果。

我确保xml中存在listview并且ID也正确。

感谢大家的帮助

07-17 15:57:16.656 D / Mono(4823):AOT:image' /storage/emulated/0/Android/data/theProject.theProject/files /。覆盖 /inspector-temp/Xamarin.Interactive.Android.dll.so'找不到:dlopen失败:library" /data/app/theProject.theProject-1/lib/x86_64/libaot-Xamarin.Interactive.Android.dll.so"未找到 07-17 15:57:16.657 D / Mono(4823):AOT:image' /usr/local/lib/mono/aot-cache/amd64/Xamarin.Interactive.Android.dll.so'找不到:dlopen失败:library" /data/app/theProject.theProject-1/lib/x86_64/libaot-Xamarin.Interactive.Android.dll.so"未找到 07-17 15:57:16.657 D / Mono(4823):装配装载机从位置加载装配:' /storage/emulated/0/Android/data/theProject.theProject/files /。覆盖 /inspector-temp/Xamarin.Interactive.Android.dll' ;. 07-17 15:57:16.657 D / Mono(4823):配置尝试解析:' /storage/emulated/0/Android/data/theProject.theProject/files /。覆盖 /inspector-temp/Xamarin.Interactive.Android.dll.config' ;. 07-17 15:57:16.657 D / Mono(4823):Config试图解析:' /usr/local/etc/mono/assemblies/Xamarin.Interactive.Android/Xamarin.Interactive.Android.config' ;。 InspectorDebugSession(30):StateChange:EntryPointBreakpointHit - > BreakdanceInvoking 加载程序集:/storage/emulated/0/Android/data/theProject.theProject/files/.override/inspector-temp/Xamarin.Interactive.dll [External] 加载程序集:/storage/emulated/0/Android/data/theProject.theProject/files/.override/inspector-temp/Xamarin.Interactive.Android.dll [External] 07-17 15:57:16.683 D / Mono(4823):Assembly Ref addref Xamarin.Interactive.Android [0x7ff1cb07b100] - > mscorlib [0x7ff1e0ccf580]:12 07-17 15:57:16.707 D / Mono(4823):Assembly Ref addref Xamarin.Interactive.Android [0x7ff1cb07b100] - > Xamarin.Interactive [0x7ff1cb0fdf80]:2 07-17 15:57:16.719 D / Mono(4823):Assembly Ref addref Xamarin.Interactive.Android [0x7ff1cb07b100] - > Mono.Android [0x7ff1cb7c9200]:2 07-17 15:57:16.945 D / Mono(4823):DllImport搜索:' __内部' ('(空)&#39)。 07-17 15:57:16.945 D / Mono(4823):搜索' java_interop_jnienv_register_natives'。 07-17 15:57:16.945 D / Mono(4823):探索' java_interop_jnienv_register_natives'。 07-17 15:57:16.945 D / Mono(4823):发现为' java_interop_jnienv_register_natives'。 07-17 15:57:16.958 D / Mono(4823):DllImport搜索:' __内部' ('(空)&#39)。 07-17 15:57:16.958 D / Mono(4823):搜索' java_interop_jnienv_call_nonvirtual_void_method_a'。 07-17 15:57:16.958 D / Mono(4823):探索' java_interop_jnienv_call_nonvirtual_void_method_a'。 07-17 15:57:16.958 D / Mono(4823):发现为' java_interop_jnienv_call_nonvirtual_void_method_a'。 07-17 15:57:16.963 D / Mono(4823):DllImport搜索:' __内部' ('(空)&#39)。 07-17 15:57:16.964 D / Mono(4823):搜索' _monodroid_gc_wait_for_bridge_processing'。 07-17 15:57:16.964 D / Mono(4823):探测' _monodroid_gc_wait_for_bridge_processing'。 07-17 15:57:16.964 D / Mono(4823):发现为' _monodroid_gc_wait_for_bridge_processing'。 07-17 15:57:16.974 D / Mono(4823):DllImport搜索:' __内部' ('(空)&#39)。 07-17 15:57:16.974 D / Mono(4823):搜索' java_interop_jnienv_is_same_object'。 07-17 15:57:16.974 D / Mono(4823):探索' java_interop_jnienv_is_same_object'。 07-17 15:57:16.974 D / Mono(4823):发现为' java_interop_jnienv_is_same_object'。 07-17 15:57:16.980 D / Mono(4823):DllImport搜索:' __内部' ('(空)&#39)。 07-17 15:57:16.980 D / Mono(4823):搜索' java_interop_jnienv_new_string'。 07-17 15:57:16.980 D / Mono(4823):探测' java_interop_jnienv_new_string'。 07-17 15:57:16.980 D / Mono(4823):发现为' java_interop_jnienv_new_string'。 07-17 15:57:16.986 D / Mono(4823):DllImport搜索:' __内部' ('(空)&#39)。 07-17 15:57:16.986 D / Mono(4823):搜索' java_interop_jnienv_get_static_field_id'。 07-17 15:57:16.986 D / Mono(4823):探索' java_interop_jnienv_get_static_field_id'。 07-17 15:57:16.986 D / Mono(4823):发现为' java_interop_jnienv_get_static_field_id'。 07-17 15:57:16.990 D / Mono(4823):DllImport搜索:' __内部' ('(空)&#39)。 07-17 15:57:16.990 D / Mono(4823):搜索' java_interop_jnienv_get_static_object_field'。 07-17 15:57:16.990 D / Mono(4823):探索' java_interop_jnienv_get_static_object_field'。 07-17 15:57:16.990 D / Mono(4823):发现为' java_interop_jnienv_get_static_object_field'。 线程开始:#3 InspectorDebugSession(30):HandleTargetEvent:ThreadStarted InspectorDebugSession(30):StateChange:BreakdanceInvoking - > BreakdanceStarted 07-17 15:57:17.121 D / Mono(4823):DllImport搜索:' __内部' ('(空)&#39)。 07-17 15:57:17.121 D / Mono(4823):搜索' java_interop_jnienv_call_static_void_method_a'。 07-17 15:57:17.121 D / Mono(4823):探索' java_interop_jnienv_call_static_void_method_a'。 07-17 15:57:17.121 D / Mono(4823):发现为' java_interop_jnienv_call_static_void_method_a'。 07-17 15:57:17.125 D / Mono(4823):程序集参考addref theProject [0x7ff1cb7c9100] - > Mono.Android [0x7ff1cb7c9200]:3 07-17 15:57:17.200 D / Mono(4823):DllImport搜索:' __内部' ('(空)&#39)。 07-17 15:57:17.200 D / Mono(4823):搜索' java_interop_jnienv_get_array_length'。 07-17 15:57:17.200 D / Mono(4823):探索' java_interop_jnienv_get_array_length'。 07-17 15:57:17.200 D / Mono(4823):发现为' java_interop_jnienv_get_array_length'。 加载程序集:MonoDroidConstructors [外部] 07-17 15:57:17.305 D / Mono(4823):程序集参考addref theProject [0x7ff1cb7c9100] - > mscorlib [0x7ff1e0ccf580]:13 07-17 15:57:17.412 D / Mono(4823):DllImport试图加载:' __内部'。 07-17 15:57:17.413 D / Mono(4823):DllImport加载库'(null)'。 07-17 15:57:17.413 D / Mono(4823):DllImport搜索:' __内部' ('(空)&#39)。 07-17 15:57:17.413 D / Mono(4823):搜索monodroid_get_system_property'。 07-17 15:57:17.413 D / Mono(4823):探测&mondroid_get_system_property'。 07-17 15:57:17.413 D / Mono(4823):发现为monodroid_get_system_property'。 07-17 15:57:17.413 D / Mono(4823):DllImport搜索:' __内部' ('(空)&#39)。 07-17 15:57:17.413 D / Mono(4823):搜索monodroid_free'。 07-17 15:57:17.413 D / Mono(4823):探索monodroid_free'。 07-17 15:57:17.413 D / Mono(4823):发现为monodroid_free'。 07-17 15:57:17.442 D / Mono(4823):DllImport搜索:' __内部' ('(空)&#39)。 07-17 15:57:17.442 D / Mono(4823):搜索' java_interop_jnienv_call_nonvirtual_object_method_a'。 07-17 15:57:17.442 D / Mono(4823):探索' java_interop_jnienv_call_nonvirtual_object_method_a'。 07-17 15:57:17.442 D / Mono(4823):发现为' java_interop_jnienv_call_nonvirtual_object_method_a'。 InspectorDebugSession(30):HandleTargetEvent:UnhandledException 未处理的例外:

System.NullReferenceException:未将对象引用设置为对象的实例。

MainActivity代码:

enter code here

using Android.App;
using Android.Widget;
using Android.OS;
using System.Collections.Generic;
using System;

namespace theProject
{
    [Activity(Label = "theProject", MainLauncher = true, Icon = "@drawable/icon")]
    public class MainActivity : Activity
    {
        private List<SomeItem> items = new List<SomeItem>();
        private ListView listView;

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

                // Set our view from the "main" layout resource
                SetContentView(Resource.Layout.Main);
                ListView listView = FindViewById<ListView>(Resource.Id.listView);


                items.Add(new SomeItem { Name = "item1"});
                items.Add(new SomeItem { Name = "anotherItem"});

                MyListViewAdapter myListViewAdapter = new MyListViewAdapter(this, items);
                listView.Adapter = myListViewAdapter;           


            }
    }
}


MyListViewAdapter class code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;

namespace theProject
{
    class MyListViewAdapter: BaseAdapter<SomeItem>
    {
        private Context context;
        private List<SomeItem> items;

        public MyListViewAdapter(Context theContext, List<SomeItem> theItems)
        {
            context = theContext;
            items = theItems;
        }

        public override SomeItem this[int position]
        {
            get
            {
                return items[position];
            }
        }

        public override int Count
        {
            get
            {
                return items.Count;
            }
        }

        public override long GetItemId(int position)
        {
            return position;
        }

        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            View currentRow = convertView;

            if (currentRow == null)
            {
                currentRow = LayoutInflater.From(context).Inflate(Resource.Layout.ListviewRow, parent, false);
            }

            ImageView itemImageView = currentRow.FindViewById<ImageView>(Resource.Id.itemImage);
            itemImageView = items[position].Image;

            TextView itemNameTxtView = currentRow.FindViewById<TextView>(Resource.Id.itemName);
            itemNametxtView.Text = items[position].Name;



            return currentRow;
        }
    }
}

0 个答案:

没有答案