#android #android-custom-view #robolectric #custom-view
#Android #android-пользовательский вид #robolectric #пользовательский вид
Вопрос:
У меня есть настраиваемый класс scrollview, я внедрил его в свой код (java amp; xml-файл), и он работает нормально, но модульные тестовые примеры для этого действия завершаются неудачей (86 из 200) с использованием robolectric framework для тестирования.
Ошибка
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)
Аналогично, 86 моих тестов завершились неудачей. Используя этот com.android.tools.build: gradle: 3.1.4
и платформа тестирования — это org.robolectric:robolectric: 4.0.2