在Android中使用Apache POI时的兼容性问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Android中使用Apache POI时的兼容性问题相关的知识,希望对你有一定的参考价值。

我在使用Apache POI时遇到了以下问题

Error:Execution failed for task ':app:transformClassesWithDexForDebug'. 
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:Program FilesJavajdk1.8.0_31injava.exe'' finished with non-zero exit value 2

我在gradle依赖项中添加了以下存储库。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile 'org.apache.poi:poi:3.14-beta1'
    compile 'org.apache.poi:poi-ooxml:3.14-beta1'
}

我也测试了poi版3.9。但每次我遇到同样的问题。

如果我评论

compile 'org.apache.poi:poi-ooxml:3.14-beta1'

应用运行没有任何异常。

答案

添加库时,您的应用程序有超过65k的方法。您需要启用multi-dex,为此修改您的gradle构建文件,如下所示:

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.0"

    defaultConfig {
        ...
        minSdkVersion 14
        targetSdkVersion 21
        ...

        // Enabling multidex support.
        multiDexEnabled true
    }
    ...
}

dependencies {
  compile 'com.android.support:multidex:1.0.0'
}

在你的Manifest中添加MultiDexApplication类:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.multidex.myapplication">
    <application
        ...
        android:name="android.support.multidex.MultiDexApplication">
        ...
    </application>
</manifest>

http://developer.android.com/tools/building/multidex.html

以上是关于在Android中使用Apache POI时的兼容性问题的主要内容,如果未能解决你的问题,请参考以下文章

JAVA - 编写Excel文件时的Apache POI OutOfMemoryError

使用Apache poi和android的HSSFCellStyle错误

Gradle - 多次定义类型,Android - Apache POI问题

java使用POI实现excel文件的读取,兼容后缀名xls和xlsx

Apache POI 4.0.1版本读取普通Excel文件(兼容 xls 和 xlsx)

Apache POI 4.0.1版本 Excel导出数据案例(兼容 xls 和 xlsx)