我正在使用 docx4j 从SD卡读取Docx文件 . 我有 org.apache.log4j.Logger 库的问题 . 我甚至试图在外部添加它 . 但它仍然给我同样的问题 .

build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.shvet.pdfreaders"
        minSdkVersion 11
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    dexOptions {
        incremental true
        javaMaxHeapSize "4g"
    }
}

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 'com.android.support:multidex:1.0.1'
    compile 'com.android.support:cardview-v7:23.1.1'
//    compile('org.docx4j:docx4j:2.8.0') {
//        transitive = false
//    }
    compile 'org.apache.logging.log4j:log4j-core:2.5'
    compile files('libs/docx4j-2.8.0.jar')
}

Logcat

02-16 16:15:48.025 24912-24912 / com.shvet.pdfreaders E / AndroidRuntime:FATAL EXCEPTION:main进程:com.shvet.pdfreaders,PID:24912 java.lang.NoClassDefFoundError:失败的解析:Lorg / apache / log4j的/ Logger ; at org.docx4j.openpackaging.Base . (Base.java:42)at com.shvet.pdfreaders.fragments.PdfViewFragment $ 6.fileSelected(PdfViewFragment.java:205)at com.shvet.pdfreaders.extra.FileChooser $ 1.onItemClick( FileChooser.java:59)在android.widget.Ab上的android.widget.Adbster.performItemClick(AdapterView.java:305)android.widget.AbsListView $ AbsClickView.java(AbsListView.java:1146) :3057)在Android.os.Handler.dispatchMessage(Handler.java:95)的android.widget.AbsListView $ 3.run(AbsListView.java:3864)android.os.Handler.handleCallback(Handler.java:739) android.os.Looper.loop(Looper.java:139)位于java.lang.reflect的java.lang.reflect.Method.invoke(Native Method)的android.app.ActivityThread.main(ActivityThread.java:5298) . 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:950)上的Method.invoke(Method.java:372)引起:java.lang.ClassNotFoundException:没有f路径上的ind class“org.apache.log4j.Logger”:DexPathList [[zip file“/data/app/com.shvet.pdfreaders-1/base.apk"],nativeLibraryDirectories=[/vendor/lib,/ system / lib]]在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)at java.lang.ClassLoader.loadClass(ClassLoader.java:511)at java.lang.ClassLoader.loadClass(ClassLoader.java:469)at org .docx4j.openpackaging.Base . (Base.java:42)com.shvet.pdfreaders.fragments.PdfViewFragment $ 6.fileSelected(PdfViewFragment.java:205)at com.shvet.pdfreaders.extra.FileChooser $ 1.onItemClick(FileChooser . java:59)在android.widget.Ab上运行android.widget.AdapterView.performItemClick(AdapterView.java:305),在android.widget.AbsListView(AbsListView.java: )在Android.os.Handler.dispatchMessage(Handler.java:95)的android.widget.AbsListView $ 3.run(AbsListView.java:3864)android.os.Handler.handleCallback(Handler.java:739) . 在android上的os.Looper.loop(Looper.java:139) .app.ActivityThread.main(ActivityThread.java:5298)位于java.lang.reflect.Method.invoke(Native Method),位于com.android.internal的java.lang.reflect.Method.invoke(Method.java:372) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:745)中的.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:950)抑制:java.lang.ClassNotFoundException:org.apache.log4j.Logger at at java.lang.Class.classForName(Native Method),java.lang.BootClassLoader.findClass(ClassLoader.java:781),位于java.lang.ClassLoader.loadClass的java.lang.BootClassLoader.loadClass(ClassLoader.java:841) ClassLoader.java:504)... 16更多引起:java.lang.NoClassDefFoundError:使用引导类加载器找不到类;没有堆栈可用

我到目前为止做了什么:我尝试使用jar文件和外部 log4j 并使用带有和没有 log4j 库的gradle url .