Hmm, you're right. I looked at some version of XMLEventFactory with javap and could have sworn I'd seen the newFactory method, but I can't find that version now, and the versions I have found don't include newFactory.
Where might I find an implementation that includes newFactory if I can't count on my VM shipping it (I.e. Dalvik?) I tried stax:stax:1.2.0 but it doesn't seem to ship with a set of javax classes--at least, I can't find one in Gradle's build directory. There is of course a stax 1.0.1 that doesn't include newFactory. Thanks. On 10/12/2014 1:46 PM, Dominik Stadler wrote: > Hi, > > This sounds like you are using an older version of class > XMLEventFactory from somewhere, it probably is pulled in by > stax-api.jar or an outdated xml-apis.jar, the classes in JDK 6 or > higher have the method newFactory(), while older ones seem to miss it. > > Dominik. > > On Sun, Oct 12, 2014 at 4:11 AM, Nolan Darilek <[email protected]> wrote: >> Hello, >> >> I'm having a very hard time trying to use XWPFDocument on Android. Seems >> like I've read everything I can find from Google on the subject, but am >> still hitting an issue. In particular, here's part of the exception I'm >> getting when I try to write a DocX from an Android app: >> >> E/AndroidRuntime( 2553): java.lang.NoSuchMethodError: >> avax.xml.stream.XMLEventFactory.newFactory >> >> E/AndroidRuntime( 2553): at >> org.apache.poi.openxml4j.opc.internal.marshallers.PackagePropertiesMarshaller.<clinit>(PackagePropertiesMarshaller.java:45) >> >> E/AndroidRuntime( 2553): at >> org.apache.poi.openxml4j.opc.OPCPackage.init(OPCPackage.java:161) >> >> E/AndroidRuntime( 2553): at >> org.apache.poi.openxml4j.opc.OPCPackage.<init>(OPCPackage.java:141) >> >> E/AndroidRuntime( 2553): at >> org.apache.poi.openxml4j.opc.Package.<init>(Package.java:37) >> >> E/AndroidRuntime( 2553): at >> org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:65) >> >> E/AndroidRuntime( 2553): at >> org.apache.poi.openxml4j.opc.OPCPackage.create(OPCPackage.java:337) >> >> E/AndroidRuntime( 2553): at >> org.apache.poi.xwpf.usermodel.XWPFDocument.newPackage(XWPFDocument.java:256) >> >> E/AndroidRuntime( 2553): at >> org.apache.poi.xwpf.usermodel.XWPFDocument.<init>(XWPFDocument.java:129) >> >> I understand the issues on Android are 2-fold. 1: the method limit. I >> haven't seemed to hit that yet, so I haven't needed to shrink the POI jars. >> >> 2. The use of javax.* namespaces. Many of the solutions I saw on Google >> involved manually opening the jars and replacing "javax" with something >> else, like "avax". For this I used Jarjar and the Gradle plugin for >> same, with a rule like: >> >> "rule javax.** avax.@1" >> >> The resulting fat jar appears to have its javax namespace renamed, and >> indeed, I can't find the string "javax" anywhere when grepping through >> the directories. >> >> I'm also not sure if I need to manually install stax-api. It appears to >> be installed as a POI dependency, but installing stax:stax-api:1.0.1 >> doesn't seem to make much of a difference. >> >> Any idea as to why I'm getting this NoSuchMethodError? Guessing it has >> to be something found on the JVM but not Dalvik, but I can't figure out >> what that is and am quickly approaching my wits' end. Do I have to do >> anything to tell POI to use the javax.xml.* facilities provided by >> stax-api and not expect to find them on the VM running it? Or is there >> something else I'm missing? >> >> Thanks. >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
