![](/img/trans.png)
[英]java.lang.noClassDefFoundError on Android 4.4.4, works on 5.0+
[英]Reading/Parsing MS Project MPP java Android 5.0+?
阿罗哈
在Java上有一个MPXJ.org项目,可以导入所有版本的MS项目文件,但麻烦的是,对于高于2000-2003 .mpp版本的.mpp文件,对于高于2003的文件,awt java lib使用awt.Color(不会在Android上导入,并且所有内容
NoClassDefFoundError:无法解决以下问题:Ljava / awt / Color;
这是基本代码
MPPReader reader = new MPPReader();
String path2file = context.getFilesDir() + "/" +SAMPLE21_MPPX;
ProjectFile projectFile = reader.read(path2file); //<-- falling here
E / AndroidRuntime:致命异常:main
流程:com.example.bio.tj,PID:13427
java.lang.NoClassDefFoundError:无法解决以下问题:Ljava / awt / Color;
在net.sf.mpxj.mpp.MPPUtility.getColor(MPPUtility.java:543)等处...
而且此MPXJ也依赖于Apache POI,该POI通常也不会导入到Android,也不会连接,所以我使用了以下程序集: https : //github.com/centic9/poi-on-android
有awt.Color的解决方案,但是在这里我不知道该怎么办。
您提供的链接看起来像Android的POI版本已经解决了此问题。 这是poi-on-android
提供的java.awt.Color
的定义:
希望您可以直接在您的项目中使用此源,或者从poi-on-android
JAR本身中学习该类。
这是分步解决方案。
//在这两行之后
编译'org.apache.poi:poi-ooxml:3.17'
编译'com.fasterxml:aalto-xml:1.0.0'
//使用mpxj gradle添加此行
编译组:“ net.sf.mpxj”,名称:“ mpxj”,版本:“ 7.2.1”
一切都在apache poi和mpxj中完成,在那之后,我拿了这个文件并导入到我的项目中,第一次运行似乎工作正常(在ms project 2010/2016文件中测试),在我的项目中添加了onCreate
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.setProperty("org.apache.poi.javax.xml.stream.XMLInputFactory", "com.fasterxml.aalto.stax.InputFactoryImpl");
System.setProperty("org.apache.poi.javax.xml.stream.XMLOutputFactory", "com.fasterxml.aalto.stax.OutputFactoryImpl");
System.setProperty("org.apache.poi.javax.xml.stream.XMLEventFactory", "com.fasterxml.aalto.stax.EventFactoryImpl");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.