Search code examples
c#androidxamarinandroid-viewpager

On Android 8.0 cannot find mScroller field in ViewPager (Xamarin.Android)


I'm trying to find a 'mScroller' field id via JNIEnv.GetFieldID. On Android 5-7 it's working, but on Android 8 it's throwing following exception:

Java.Lang.NoSuchFieldError: no type "android/widget/Scroller" found and so no field "mScroller" could be found in class "Landroid/support/v4/view/ViewPager;"

Code sample:

var viewPagerClass = JNIEnv.FindClass("android/support/v4/view/ViewPager");
var scrollerFieldId = JNIEnv.GetFieldID(viewPagerClass, "mScroller", "android/widget/Scroller");

But following code works on Android 8:

var scrollerClass = JNIEnv.FindClass("android/widget/Scroller");

Solution

  • I have found a solution...

    I have made a mistake and

    "android/widget/Scroller"
    

    should be

    "Landroid/widget/Scroller;"