我正在使用 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 .