在过去的几天里,我开始收到上述错误 不是在这里那里,而是在各处。在某些地方,我甚至无法把这个奇怪的构造函数放进去, 就像下面的调用堆栈一样。
我在https://stackoverflow.com/a/10603714/106248中看到了答案,但我相信这不是我的理由。它只是开始发生在任何地方。特别是当我提出断点时。
以下是一个例子:
10-26 15:34:58.895 E/mono-rt (13841): [ERROR] FATAL UNHANDLED EXCEPTION: System.NotSupportedException: Unable to activate instance of type Android.Views.View+IOnClickListenerImplementor from native handle 7960001d ---> System.MissingMethodException: No constructor found for Android.Views.View+IOnClickListenerImplementor::.ctor(System.IntPtr, Android.Runtime.JniHandleOwnership) ---> Java.Interop.JavaLocationException: Exception of type 'Java.Interop.JavaLocationException' was thrown.
10-26 15:34:58.895 E/mono-rt (13841): Java.Lang.Error: Exception of type 'Java.Lang.Error' was thrown.
10-26 15:34:58.895 E/mono-rt (13841):
10-26 15:34:58.895 E/mono-rt (13841): --- End of managed exception stack trace ---
10-26 15:34:58.895 E/mono-rt (13841): java.lang.Error: Java callstack:
10-26 15:34:58.895 E/mono-rt (13841): at mono.android.view.View_OnClickListenerImplementor.n_onClick(Native Method)
10-26 15:34:58.895 E/mono-rt (13841): at mono.android.view.View_OnClickListenerImplementor.onClick(View_OnClickListenerImplementor.java:29)
10-26 15:34:58.895 E/mono-rt (13841): at android.view.View.performClick(View.java:4475)
10-26 15:34:58.895 E/mono-rt (13841): at android.view.View$PerformClick.run(View.java:18786)
10-26 15:34:58.895 E/mono-rt (13841): at android.os.Handler.handleCallback(Handler.java:730)
10-26 15:34:58.895 E/mono-rt (13841): at android.os.Handler.dispatchMessage(Handler.java:92)
10-26 15:34:58.895 E/mono-rt (13841): at android.os.Looper.loop
答案 0 :(得分:6)
根据我的经验,当应用程序运行时从内存中释放对象时会发生这种情况。然后,例如,如果您返回到该页面并且该对象需要由Mono重新创建,则需要指定该构造函数。
John Pryor answer you are referring to应该是您问题的答案。重要的部分如下:
因此,Mono for Android会创建相应类型的实例... via (IntPtr,JniHandleOwnership)构造函数,并生成错误 如果找不到这个构造函数。
一旦(在这种情况下)TextView构造函数完成执行, LogTextBox的ACW构造函数将执行,此时Mono for Android会变成“啊哈!我们已经为此创建了一个C#实例 Java实例“,然后将调用相应的构造函数 已创建的实例。这意味着对于单个实例,两个 构造函数将被执行:(IntPtr,JniHandleOwnership) 构造函数,(稍后)(Context,IAttributeSet,int) 构造
我想成为更好的帮助,但没有任何代码片段,很难说。尝试查看实现IOnClickListenerImplementor
的对象,看看你是否可以在监听器的实现中添加构造函数....祝你好运