java.lang.NoSuchMethodError: java.lang.System.arraycopy using XmlPullParser with Robolectric

Deadly 提交于 2019-12-24 03:51:42

问题


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?


回答1:


This problems i faced few months back. Change your android API version error will be lost. More info see this.




回答2:


In case somebody stumbles upon this problem, it comes from the version of the SDK.

In the test case just switch from:

@Config(constants = BuildConfig.class, sdk = 21, manifest = "src/main/AndroidManifest.xml")

to:

@Config(constants = BuildConfig.class, sdk = 18, manifest = "src/main/AndroidManifest.xml")

Thanks @Exbury for the tip!



来源:https://stackoverflow.com/questions/31285965/java-lang-nosuchmethoderror-java-lang-system-arraycopy-using-xmlpullparser-with

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!