我通过名为Xamarin.GradleBinding的visual studio扩展创建了
java绑定库.我添加了ru.rambler.android:swipe-layout:1.0.14包,并在使用其SwipeLayout时,一切正常.但不幸的是,它没有创建相应的C#类或类似的东西.我尝试手动添加包但仍然没有.
我检查了source on GitHub.SwipeLayout有一个没有参数的public void方法reset():
public void reset()
我尝试使用JNIEnv从c#调用此方法.
IntPtr type = JNIEnv.FindClass("ru/rambler/libs/swipe_layout/SwipeLayout");
IntPtr method = JNIEnv.GetMethodID(type, "reset", "()V");
try
{
JNIEnv.CallObjectMethod(_swiper.Handle, method);
}
catch (Exception ex)
{
var s = ex.Message;
}
已成功找到类型和方法,但正在调用
JNIEnv.CallObjectMethod(_swiper.Handle, method);
这个方法崩溃了应用程序,它甚至没有进入catch块.
Tt必须是_swiper.Handle第一个参数的原因.
_swiper字段的类型为ViewGroup,因为SwipeLayout是从ViewGroup派生的.
我找不到如何获取视图的指针来传递该方法.
在调试时,当我调查_swiper时,它似乎是SwipeLayout的正确实例