当前位置: 首页 > 知识库问答 >
问题:

原因:java.lang.NoSuchMethodError:没有静态方法newFactory()

巫马自明
2023-03-14

我正在构建一个Android应用程序,在尝试读取XLSX文件时,面临一个非静态方法异常。

尝试了所有的可能性,如更新应用程序/build.gradle中的依赖关系,但没有成功。

请帮助我解决此问题。

Exception causing line in code: XSSFWorkbook myWorkBook = new XSSFWorkbook(fis);

    08-07 12:37:05.828 16406-16511/droidmentor.tabwithviewpager E/AndroidRuntime: 
    FATAL EXCEPTION: AsyncTask #1
    Process: droidmentor.tabwithviewpager, PID: 16406
    java.lang.RuntimeException: An error occurred while executing doInBackground()
        at android.os.AsyncTask$3.done(AsyncTask.java:325)
        at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
        at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
        at java.util.concurrent.FutureTask.run(FutureTask.java:242)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
        at java.lang.Thread.run(Thread.java:761)
     Caused by: java.lang.NoSuchMethodError: No static method newFactory()Ljavax/xml/stream/XMLEventFactory; in class Ljavax/xml/stream/XMLEventFactory; or its super classes (declaration of 'javax.xml.stream.XMLEventFactory' appears in /data/app/droidmentor.tabwithviewpager-2/split_lib_dependencies_apk.apk)
        at org.apache.poi.openxml4j.opc.internal.marshallers.PackagePropertiesMarshaller.<clinit>(PackagePropertiesMarshaller.java:45)
        at org.apache.poi.openxml4j.opc.OPCPackage.init(OPCPackage.java:161)
        at org.apache.poi.openxml4j.opc.OPCPackage.<init>(OPCPackage.java:141)
        at org.apache.poi.openxml4j.opc.Package.<init>(Package.java:37)
        at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:87)
        at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:272)
        at org.apache.poi.util.PackageHelper.open(PackageHelper.java:37)
        at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:254)
        at droidmentor.tabwithviewpager.Fragment.ChatFragment$LongOperation.readXLSX(ChatFragment.java:191)
        at droidmentor.tabwithviewpager.Fragment.ChatFragment$LongOperation.doInBackground(ChatFragment.java:112)
        at droidmentor.tabwithviewpager.Fragment.ChatFragment$LongOperation.doInBackground(ChatFragment.java:88)
        at android.os.AsyncTask$2.call(AsyncTask.java:305)
        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
        at java.lang.Thread.run(Thread.java:761) 

我正在添加app.gradle文件。其他代码是使用XSSF的基本XLSX文件读取。当我试图在Spring Suite工具中运行这个java片段时,它运行正常。然而,当我将这些java片段集成到Android应用程序中时,它导致了这个运行时异常。

应用分级:

apply plugin: 'com.android.application'

android {
compileSdkVersion 25
buildToolsVersion '27.0.3'
defaultConfig {
    applicationId "droidmentor.tabwithviewpager"
    minSdkVersion 15
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 
'proguard-rules.pro'
    }
}
}

apply plugin: 'android'

repositories {
mavenCentral()
}



dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
//noinspection GradleCompatible
compile 'com.android.support:appcompat-v7:25.0.0'
//noinspection GradleCompatible
compile 'com.android.support:design:25.0.+'
compile 'org.apache.poi:poi:3.10-FINAL'
compile 'net.sourceforge.jexcelapi:jxl:2.6.12'
compile 'commons-io:commons-io:2.4'
compile 'org.apache.poi:poi:3.11-beta2'
compile 'org.apache.poi:poi-ooxml:3.11-beta2'
compile 'javax.inject:javax.inject:1'
compile 'javax.servlet:servlet-api:2.5'
compile 'javax.servlet.jsp:jsp-api:2.1'
compile 'javax.servlet:jstl:1.2'
compile 'junit:junit:4.7'
compile 'net.sf.opencsv:opencsv:2.3'
compile 'org.apache.poi:poi-ooxml:2.3'
compile 'org.apache.poi:poi-ooxml-schemas:3.8'
compile 'org.apache.xmlbeans:xmlbeans:2.3.0'
compile 'dom4j:dom4j:1.6.1'

}

共有1个答案

松德曜
2023-03-14

检查您是否在apk上应用了任何混淆,如果是,则需要保留这些包和类,以便它们不会被proguard剥离。

 类似资料:
  • 我正在尝试从下面的git链接运行代码 但我有个错误 nosuchMethodError:没有静态方法getFont(landroid/content/context;ilandroid/util/typedvalue;ilandroid/widget/textview;)landroid/graphics/typeface;在Landroid/Support/V4/Content/Res/Reso

  • 问题内容: 我有一个问题,我不确定为什么,仍然是新手,请帮助解决。 错误:java.lang.NoSuchMethodError:类Landroid / support / v7 / widget / ViewUtils中没有静态方法CombineMeasuredStates(II)I;或其超级类(“ android.support.v7.widget.ViewUtils”的声明显示在/data/

  • 我有一个扩展方法: 应用程序安装时没有任何错误;但是当在运行时调用该方法时,它会给我以下错误: java.lang.NoSuch方法错误:没有静态方法onClickButtonBack(Lcom/app/common_client/ui/片段 /stores/StoresClientFragment;)V类Lcom/app/common_client/公共资源/公共资源AppTypeGroupKt

  • 我试图在Android Studio中运行一个测试,测试设置抛出一个java.lang.NoSuchMethodError 测试: 有人知道正在发生什么,或者能给我指路? 编辑:当我在其他测试中创建一个实体的新实例时再次出现此错误,该实体在测试中是静态属性。

  • 问题内容: 我的应用程序有一个问题,当我登录时,该应用程序崩溃并且出现错误: 我试图弄乱gradle并更改变量。这个问题似乎源于此软件包: 然后,它还引用了以下内容: 这是我的摇篮 关于如何找到纠正错误的方法有任何想法吗? 问题答案: 尝试切换到Java 8兼容性,以对某些库进行适当的除糖处理: 此外,Google JSON API可能更需要。

  • 问题内容: 我在Jenkins管道中使用JSON函数并获取。我正在使用Jenkins 2.85。 任何想法如何解决这个问题? 问题答案: 使用管道实用程序步骤插件可以使用该功能。 没有此插件,您将无法使用此功能。 有关更多信息,请检查:步骤