0

I have a simple custom View:

public class ScrollDisabledViewPager extends ViewPager {

    public ScrollDisabledViewPager(Context context) {
        super(context);
    }

    public ScrollDisabledViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        return false;
    }

    @Override
    public boolean onTouchEvent(MotionEvent ev) {
        return false;
    }

}

When I put this View in my XML layout, it doesn't inflate:

enter image description here

XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context="com.lol.firebase.ui.SignUpActivity">

    <com.lol.firebase.ui.SignUpActivity.ScrollDisabledViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <android.support.design.widget.TabLayout
        android:id="@+id/tab_dots"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        app:tabGravity="center"
        app:tabIndicatorHeight="0dp"
        app:tabBackground="@drawable/tab_indicator_selector" />

    <Button
        android:id="@+id/btn_back"
        android:text="@string/back"
        android:textColor="@color/colorPrimaryLight"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:drawableLeft="@drawable/ic_back"
        style="@style/Widget.AppCompat.Button.Borderless"
        android:visibility="gone" />

    <Button
        android:id="@+id/btn_next_or_finish"
        android:text="@string/next"
        android:textColor="@color/colorPrimaryLight"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:drawableRight="@drawable/ic_next"
        style="@style/Base.Widget.AppCompat.Button.Borderless" />

</RelativeLayout>

Stacktrace:

 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lol.firebase/com.lol.firebase.ui.SignUpActivity}: android.view.InflateException: Binary XML file line #9: Error inflating class com.lol.firebase.ui.SignUpActivity.ScrollDisabledViewPager
                                                                          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2660)
                                                                          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2730)
                                                                          at android.app.ActivityThread.access$800(ActivityThread.java:185)
                                                                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1567)
                                                                          at android.os.Handler.dispatchMessage(Handler.java:111)
                                                                          at android.os.Looper.loop(Looper.java:194)
                                                                          at android.app.ActivityThread.main(ActivityThread.java:5847)
                                                                          at java.lang.reflect.Method.invoke(Native Method)
                                                                          at java.lang.reflect.Method.invoke(Method.java:372)
                                                                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1010)
                                                                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
                                                                       Caused by: android.view.InflateException: Binary XML file line #9: Error inflating class com.lol.firebase.ui.SignUpActivity.ScrollDisabledViewPager
                                                                          at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763)
                                                                          at android.view.LayoutInflater.rInflate(LayoutInflater.java:812)
                                                                          at android.view.LayoutInflater.inflate(LayoutInflater.java:510)
                                                                          at android.view.LayoutInflater.inflate(LayoutInflater.java:420)
                                                                          at android.view.LayoutInflater.inflate(LayoutInflater.java:371)
                                                                          at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:292)
                                                                          at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
                                                                          at com.lol.firebase.ui.SignUpActivity.onCreate(SignUpActivity.java:29)
                                                                          at android.app.Activity.performCreate(Activity.java:6117)
                                                                          at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
                                                                          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2613)
                                                                          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2730) 
                                                                          at android.app.ActivityThread.access$800(ActivityThread.java:185) 
                                                                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1567) 
                                                                          at android.os.Handler.dispatchMessage(Handler.java:111) 
                                                                          at android.os.Looper.loop(Looper.java:194) 
                                                                          at android.app.ActivityThread.main(ActivityThread.java:5847) 
                                                                          at java.lang.reflect.Method.invoke(Native Method) 
                                                                          at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1010) 
                                                                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 
                                                                       Caused by: java.lang.ClassNotFoundException: Didn't find class "com.lol.firebase.ui.SignUpActivity.ScrollDisabledViewPager" on path: DexPathList[[zip file "/data/app/com.lol.firebase-1/base.apk", zip file "/data/app/com.lol.firebase-1/split_lib_dependencies_apk.apk", zip file "/data/app/com.lol.firebase-1/split_lib_slice_0_apk.apk", zip file "/data/app/com.lol.firebase-1/split_lib_slice_1_apk.apk", zip file "/data/app/com.lol.firebase-1/split_lib_slice_2_apk.apk", zip file "/data/app/com.lol.firebase-1/split_lib_slice_3_apk.apk", zip file "/data/app/com.lol.firebase-1/split_lib_slice_4_apk.apk", zip file "/data/app/com.lol.firebase-1/split_lib_slice_5_apk.apk", zip file "/data/app/com.lol.firebase-1/split_lib_slice_6_apk.apk", zip file "/data/app/com.lol.firebase-1/split_lib_slice_7_apk.apk", zip file "/data/app/com.lol.firebase-1/split_lib_slice_8_apk.apk", zip file "/data/app/com.lol.firebase-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.lol.firebase-1/lib/arm64, /vendor/lib64, /system/lib64]]
                                                                          at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                                                                          at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
                                                                          at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
                                                                          at android.view.LayoutInflater.createView(LayoutInflater.java:577)
                                                                          at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:749)
                                                                          at android.view.LayoutInflater.rInflate(LayoutInflater.java:812) 
                                                                          at android.view.LayoutInflater.inflate(LayoutInflater.java:510) 
                                                                          at android.view.LayoutInflater.inflate(LayoutInflater.java:420) 
                                                                          at android.view.LayoutInflater.inflate(LayoutInflater.java:371) 
                                                                          at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:292) 
                                                                          at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                                                                          at com.lol.firebase.ui.SignUpActivity.onCreate(SignUpActivity.java:29) 
                                                                          at android.app.Activity.performCreate(Activity.java:6117) 
                                                                          at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123) 
                                                                          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2613) 
                                                                          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2730) 
                                                                          at android.app.ActivityThread.access$800(ActivityThread.java:185) 
                                                                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1567) 
                                                                          at android.os.Handler.dispatchMessage(Handler.java:111) 
                                                                          at android.os.Looper.loop(Looper.java:194) 
                                                                          at android.app.ActivityThread.main(ActivityThread.java:5847) 
                                                                          at java.lang.reflect.Method.invoke(Native Method) 
                                                                          at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1010) 
                                                                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 
                                                                        Suppressed: java.lang.ClassNotFoundException: com.lol.firebase.ui.SignUpActivity.ScrollDisabledViewPager
                                                                          at java.lang.Class.classForName(Native Method)
                                                                          at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
                                                                          at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
                                                                          at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
                                                                                ... 23 more
                                                                       Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

The Stacktrace shows a ClassNotFound Exception, but I don't understand why: the class is public, and I have both constructors.

Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
Vanya Makhlinets
  • 248
  • 1
  • 4
  • 13

2 Answers2

0

here is relevance error message: java.lang.ClassNotFoundException: Didn't find class "com.lol.firebase.ui.SignUpActivity.ScrollDisabledViewPager" please make sure the class ScrollDisabledViewPager is inside package com.lol.firebase.ui.SignUpActivity

but, I guess your class is inside com.lol.firebase.ui instead of com.lol.firebase.ui.SignUpActivity, if my guess is right than you should define com.lol.firebase.ui.ScrollDisabledViewPager in your xml layout

...other xml layout

<com.lol.firebase.ui.ScrollDisabledViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

...other xml layout
hakim
  • 3,819
  • 3
  • 21
  • 25
0

Based on public class ScrollDisabledViewPager, I'm guessing that's not a nested class of SignUpActivity.java

But yet your error seems to be referring to it as one.

com.lol.firebase.ui.SignUpActivity.ScrollDisabledViewPager

You can try to move the class into the com.lol.firebase.ui package, if not there already, but the XML must match package + "." + className

OneCricketeer
  • 179,855
  • 19
  • 132
  • 245