Android 自定义视图膨胀错误

Android 自定义视图膨胀错误,android,inflate-exception,Android,Inflate Exception,我有一个简单的自定义视图: public class ScrollDisabledViewPager extends ViewPager { public ScrollDisabledViewPager(Context context) { super(context); } public ScrollDisabledViewPager(Context context, AttributeSet attrs) { super(conte

我有一个简单的自定义视图:

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;
    }

}
当我将此视图放入XML布局时,它不会膨胀:

XML:


Stacktrace显示了ClassNotFound异常,但我不明白为什么:该类是公共的,并且我有两个构造函数。

下面是相关错误消息:

java.lang.ClassNotFoundException:未找到类“com.lol.firebase.ui.SignUpActivity.ScrollDisabledViewPage”
请确保类
ScrollDisabledViewPage
位于包
com.lol.firebase.ui.SignUpActivity

但是,如果我的猜测是正确的,那么您应该在xml布局中定义
com.lol.firebase.ui.scrolldisabledviewpage
,而不是
com.lol.firebase.ui
,我猜您的类在
com.lol.firebase.ui

...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
…其他xml布局
…其他xml布局

基于
公共类ScrollDisabledViewPage
,我猜这不是
SignUpActivity.java的嵌套类

但你的错误似乎是指它是一个

com.lol.firebase.ui.SignUpActivity.ScrollDisabledViewPage


您可以尝试将该类移动到
com.lol.firebase.ui
包中,如果还没有,但是XML必须匹配
package+“+”className

您是否尝试过将其作为嵌套类?@cricket_007 yep thx,当我将其移动到根包时,它起到了帮助作用
 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
...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