I am trying to test my Android app in Android-Studio with Robolectric. One of my unit tests makes use of XmlPullParser
:
InputStream in = new FileInputStream(new File("somefile.xml"));
XmlPullParser parser = Xml.newPullParser();
parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
parser.setInput(in, null);
parser.nextTag();
while(parser.next()!=XmlPullParser.END_DOCUMENT){
// ...
}
Here is what happens when I run the test:
java.lang.NoSuchMethodError: java.lang.System.arraycopy([II[III)V
at org.kxml2.io.KXmlParser.parseStartTag(KXmlParser.java:1145)
at org.kxml2.io.KXmlParser.next(KXmlParser.java:372)
at org.kxml2.io.KXmlParser.next(KXmlParser.java:313)
at xxx.Xxxx.readTag(Xxxx.java:167)
Is it a problem with the implementation of the parser on Robolectric side?
This problems i faced few months back. Change your android API version error will be lost. More info see this.
In case somebody stumbles upon this problem, it comes from the version of the SDK.
In the test case just switch from:
to:
Thanks @Exbury for the tip!