Android 使用自定义滚动视图时单元测试失败

Android 使用自定义滚动视图时单元测试失败,android,android-custom-view,robolectric,custom-view,Android,Android Custom View,Robolectric,Custom View,我有一个定制的scrollview类,我已经在我的代码(java和xml文件)中实现了它,它工作得很好,但是该活动的单元测试用例失败(200个中有86个失败),使用robolectric框架进行测试 错误 com.my.android.AppTest.AppActivityTest>testSetInProgressTrue失败 android.view.InflateException:XML文件/home/MJ/build/intermediates/merged not compiled

我有一个定制的scrollview类,我已经在我的代码(java和xml文件)中实现了它,它工作得很好,但是该活动的单元测试用例失败(200个中有86个失败),使用robolectric框架进行测试

错误
com.my.android.AppTest.AppActivityTest>testSetInProgressTrue失败
android.view.InflateException:XML文件/home/MJ/build/intermediates/merged not compiled resources/debug/layout/layout.XML
第`#`-1行(很抱歉,尚未实现):膨胀com.my.android.widget.myScrollView类时出错
位于android.view.LayoutInflater.createView(LayoutInflater.java:620)
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
在android.view.LayoutInflater.inflate(LayoutInflater.java:492)
在android.view.LayoutInflater.inflate(LayoutInflater.java:397)
在com.my.android.utility.MyLayoutPreloader.createActivityLayout(MyLayoutPreloader.java:62)上
在com.my.android.AppTest.AppActivityTest.setUp上(AppActivityTest.java:95)
原因:
java.lang.reflect.InvocationTargetException
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:423)
位于android.view.LayoutInflater.$$robo$$android\u view\u LayoutInflater$createView(LayoutInflater.java:594)
在android.view.LayoutInflater.createView(LayoutInflater.java)中
位于android.view.LayoutInflater.$$robo$$android\u view\u LayoutInflater$createViewFromTag(LayoutInflater.java:696)
在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java)上
在android.view.LayoutInflater.$$robo$$android\u view\u LayoutInflater$rInflate(LayoutInflater.java:755)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java)
在android.view.LayoutInflater.$$robo$$android\u view\u LayoutInflater$rInflate(LayoutInflater.java:758)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java)
在android.view.LayoutInflater.$$robo$$android\u view\u LayoutInflater$充气(LayoutInflater.java:492)
在android.view.LayoutInflater.inflate(LayoutInflater.java)中
在android.view.LayoutInflater.$$robo$$android\u view\u LayoutInflater$充气(LayoutInflater.java:397)
在android.view.LayoutInflater.inflate(LayoutInflater.java)中
... 还有两个
原因:
java.lang.ArrayIndexOutOfBoundsException:264
位于android.content.res.TypedArray.getBoolean(TypedArray.java:213)
在com.my.android.widget.myScrollView上(myScrollView.java:55)
位于android.view.LayoutInflater.createView(LayoutInflater.java:594)
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
在android.view.LayoutInflater.inflate(LayoutInflater.java:492)
在android.view.LayoutInflater.inflate(LayoutInflater.java:397)
... 还有两个
java.lang.NullPointerException
在com.my.android.utility.MyLayoutPreloader.activityCloseCleanup上(MyLayoutPreloader.java:83)
在com.my.android.utility.mylayompreloader.reset(mylayompreloader.java:187)上
在com.my.android.AppTest.AppActivityTest.tearDown(AppActivityTest.java:127)
com.my.android.AppTest.AppActivityTest>testIsLayoutNotEnabled失败
android.view.InflateException:XML文件/home/MJ/build/intermediates/merged not compiled resources/debug/layout/layout.XML
第`#`-1行(很抱歉,尚未实现):膨胀类时出错
位于android.view.LayoutInflater.createView(LayoutInflater.java:620)
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
在android.view.LayoutInflater.inflate(LayoutInflater.java:492)
在android.view.LayoutInflater.inflate(LayoutInflater.java:397)
在com.my.android.utility.MyLayoutPreloader.createActivityLayout(MyLayoutPreloader.java:62)上
在com.my.android.AppTest.AppActivityTest.setUp上(AppActivityTest.java:95)
原因:
java.lang.reflect.InvocationTargetException
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:423)
位于android.view.LayoutInflater.$$robo$$android\u view\u LayoutInflater$createView(LayoutInflater.java:594)
在android.view.LayoutInflater.createView(LayoutInflater.java)中
位于android.view.LayoutInflater.$$robo$$android\u view\u LayoutInflater$createViewFromTag(LayoutInflater.java:696)
在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java)上
在android.view.LayoutInflater.$$robo$$android\u view\u LayoutInflater$rInflate(LayoutInflater.java:755)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java)
在android.view.LayoutInflater.$$robo$$android\u view\u LayoutInflater$rInflate(LayoutInflater.java:758)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java)
在android.view.LayoutInflater.$$robo$$android\u view\u LayoutInflater$充气(LayoutInflater.java:492)
在android.view.LayoutInflater.inflate(LayoutInflater.java)中
在安卓。
    com.my.android.AppTest.AppActivityTest > testSetInProgressTrue FAILED
    android.view.InflateException: XML file /home/MJ/build/intermediates/merged-not-compiled-resources/debug/layout/layout.xml 
    line `#`-1 (sorry, not yet implemented): Error inflating class com.my.android.widget.myScrollView
    at android.view.LayoutInflater.createView(LayoutInflater.java:620)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
    at com.my.android.utilility.MyLayoutPreloader.createActivityLayout(MyLayoutPreloader.java:62)
    at com.my.android.AppTest.AppActivityTest.setUp(AppActivityTest.java:95)

    Caused by:
    java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at android.view.LayoutInflater.$$robo$$android_view_LayoutInflater$createView(LayoutInflater.java:594)
        at android.view.LayoutInflater.createView(LayoutInflater.java)
        at android.view.LayoutInflater.$$robo$$android_view_LayoutInflater$createViewFromTag(LayoutInflater.java:696)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java)
        at android.view.LayoutInflater.$$robo$$android_view_LayoutInflater$rInflate(LayoutInflater.java:755)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java)
        at android.view.LayoutInflater.$$robo$$android_view_LayoutInflater$rInflate(LayoutInflater.java:758)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java)
        at android.view.LayoutInflater.$$robo$$android_view_LayoutInflater$inflate(LayoutInflater.java:492)
        at android.view.LayoutInflater.inflate(LayoutInflater.java)
        at android.view.LayoutInflater.$$robo$$android_view_LayoutInflater$inflate(LayoutInflater.java:397)
        at android.view.LayoutInflater.inflate(LayoutInflater.java)
        ... 2 more

        Caused by:
        java.lang.ArrayIndexOutOfBoundsException: 264
            at android.content.res.TypedArray.getBoolean(TypedArray.java:213)
            at com.my.android.widget.myScrollView.<init>(myScrollView.java:55)
            at android.view.LayoutInflater.createView(LayoutInflater.java:594)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
            ... 2 more

    java.lang.NullPointerException
        at com.my.android.utilility.MyLayoutPreloader.activityCloseCleanup(MyLayoutPreloader.java:83)
        at com.my.android.utilility.MyLayoutPreloader.reset(MyLayoutPreloader.java:187)
        at com.my.android.AppTest.AppActivityTest.tearDown(AppActivityTest.java:127)

    com.my.android.AppTest.AppActivityTest > testIsLayoutNotEnabled FAILED
    android.view.InflateException: XML file /home/MJ/build/intermediates/merged-not-compiled-resources/debug/layout/layout.xml 
    line `#`-1 (sorry, not yet implemented): Error inflating class <unknown>
    at android.view.LayoutInflater.createView(LayoutInflater.java:620)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
    at com.my.android.utilility.MyLayoutPreloader.createActivityLayout(MyLayoutPreloader.java:62)
    at com.my.android.AppTest.AppActivityTest.setUp(AppActivityTest.java:95)

    Caused by:
    java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at android.view.LayoutInflater.$$robo$$android_view_LayoutInflater$createView(LayoutInflater.java:594)
        at android.view.LayoutInflater.createView(LayoutInflater.java)
        at android.view.LayoutInflater.$$robo$$android_view_LayoutInflater$createViewFromTag(LayoutInflater.java:696)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java)
        at android.view.LayoutInflater.$$robo$$android_view_LayoutInflater$rInflate(LayoutInflater.java:755)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java)
        at android.view.LayoutInflater.$$robo$$android_view_LayoutInflater$rInflate(LayoutInflater.java:758)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java)
        at android.view.LayoutInflater.$$robo$$android_view_LayoutInflater$inflate(LayoutInflater.java:492)
        at android.view.LayoutInflater.inflate(LayoutInflater.java)
        at android.view.LayoutInflater.$$robo$$android_view_LayoutInflater$inflate(LayoutInflater.java:397)
        at android.view.LayoutInflater.inflate(LayoutInflater.java)
        ... 2 more

        Caused by:
        java.lang.ArrayIndexOutOfBoundsException: 264
            at android.content.res.TypedArray.getBoolean(TypedArray.java:213)
            at com.my.android.widget.myScrollView.<init>(myScrollView.java:55)
            at android.view.LayoutInflater.createView(LayoutInflater.java:594)
            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
            at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
            ... 2 more

    java.lang.NullPointerException
        at com.my.android.utilility.MyLayoutPreloader.activityCloseCleanup(MyLayoutPreloader.java:83)
        at com.my.android.utilility.MyLayoutPreloader.reset(MyLayoutPreloader.java:187)
        at com.my.android.AppTest.AppActivityTest.tearDown(AppActivityTest.java:127)