я использую apache.poi 3,15 читать XLSX файла из андроида. мое приложение показать ошибки в 2-х условиях условие один: если я бегу мое приложение без XML-beans.jar, приложение будет построить и запустить, и я могу declearандроид для чтения XLSX файл с апачом пои остановкой с ошибкой, как решить
XSSFWorkbook workbook = null;
поэтому не ошибка будет быть, но если появляться я изменить мой код для этого
InputStream fIn = cntx.getResources().getAssets().open("a.xlsx", cntx.MODE_WORLD_READABLE);
XSSFWorkbook workbook = null;
workbook=new XSSFWorkbook(fIn);
приложения будет успешно строить, после запуска остановится и показать эту ошибку:
java.lang.VerifyError: org/apache/poi/xssf/usermodel/XSSFWorkbook
Состояние два: если я завишу xmlbeans.jar, андроид студия прекращает процесс сборки и показать эту ошибку:
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. > com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: org/apache/xmlbeans/xml/stream/Location.class
это мой Gradle:
defaultConfig {
applicationId "com.ramin.test"
minSdkVersion 17
targetSdkVersion 23
versionCode 1
versionName "1.0"
//enable Multi Dex
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dexOptions {
preDexLibraries false;
javaMaxHeapSize "4g"
}
afterEvaluate {
tasks.matching {
it.name.startsWith('dex')
}.each { dx ->
if (dx.additionalParameters == null) {
dx.additionalParameters = ['--multi-dex']
} else {
dx.additionalParameters += '--multi-dex'
}
}
}
dependencies {
testCompile 'junit:junit:4.12'
compile 'com.android.support:cardview-v7:23.4.0'
compile 'com.android.support:recyclerview-v7:23.4.0'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.1.1'
compile files('libs/poi-3.15.jar')
compile files('libs/poi-ooxml-schemas-3.15.jar')
compile files('libs/poi-ooxml-3.15.jar')
compile files('libs/xmlbeans-2.6.0.jar')}
, что я должен делать
ли вы посмотрите на любой другой Android + POI вопросы здесь ? Что произойдет, если вы будете следовать рекомендациям, данным в большинстве из них? – Gagravarr
да, я видел большинство вопросов в stackoverflow, у любой версии была другая ошибка – ramin
я попробовал библиотеку aspose.cell, и это хорошо работает, к сожалению, не имеет права использовать только 30-дневную пробную версию :(так что снова я должен решить проблему apache.poi. для следующего шага я изменяю версию apache с 3,15 до 3,8. Теперь у меня есть одна проблема с stax-api1.01.jar для этой ошибки («javax/xml/stream/EventFilter.class»: Неисправное или ошибочное использование основной класс (java. * или javax. *), когда не строит основную библиотеку.) – ramin