Skip to content

error: Android: NoSuchMethodError #330

@MrBrowner

Description

@MrBrowner

Hello,

I'm using this lib in test project, trying to read excel file/inputstream.
 
log

FATAL EXCEPTION: main
Process: com.test.app, PID: 19625
java.lang.NoSuchMethodError: No virtual method canAccess(Ljava/lang/Object;)Z in class Ljava/lang/reflect/Constructor; or its super classes (declaration of 'java.lang.reflect.Constructor' appears in /apex/com.android.art/javalib/core-oj.jar)
	at com.poiji.util.ReflectUtil.newInstanceOf(ReflectUtil.java:24)
	at com.poiji.bind.mapping.PoijiHandler.startRow(PoijiHandler.java:226)
	at org.apache.poi.xssf.eventusermodel.XSSFSheetXMLHandler.startElement(XSSFSheetXMLHandler.java:260)
	at com.poiji.bind.mapping.XSSFSheetXMLPoijiHandler.startElement(XSSFSheetXMLPoijiHandler.java:67)
	at org.apache.harmony.xml.ExpatParser.startElement(ExpatParser.java:154)
	at org.apache.harmony.xml.ExpatParser.appendBytes(Native Method)
	at org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:526)
	at org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:487)
	at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:324)
	at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:287)
	at com.poiji.bind.mapping.XSSFUnmarshaller.processSheet(XSSFUnmarshaller.java:115)
	at com.poiji.bind.mapping.XSSFUnmarshaller.unmarshal0(XSSFUnmarshaller.java:72)
	at com.poiji.bind.mapping.XSSFUnmarshallerStream.returnFromExcelFile(XSSFUnmarshallerStream.java:43)
	at com.poiji.bind.mapping.XSSFUnmarshallerStream.unmarshal(XSSFUnmarshallerStream.java:35)
	at com.poiji.bind.Poiji.fromExcel(Poiji.java:257)
	at com.poiji.bind.Poiji.fromExcel(Poiji.java:229)
	at com.test.app.ui.activity.ImportExportActivity.onOptionsItemSelected$lambda$6(ImportExportActivity.kt:75)
	at com.test.appui.activity.ImportExportActivity.$r8$lambda$5TPN_JM8_wHTPPMKyANghiY3Dzk(Unknown Source:0)
	at com.test.app.ui.activity.ImportExportActivity$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
	at com.test.app.util.interact.OsaActivityResult.launcher$lambda$0(OsaActivityResult.kt:16)
	at com.test.app.util.interact.OsaActivityResult.$r8$lambda$8J2K_0rnz0s2tQlY_mALUXqNLCY(Unknown Source:0)
	at com.test.app.util.interact.OsaActivityResult$$ExternalSyntheticLambda0.onActivityResult(D8$$SyntheticClass:0)
	at androidx.activity.result.ActivityResultRegistry.register$lambda$1(ActivityResultRegistry.kt:113)
	at androidx.activity.result.ActivityResultRegistry.$r8$lambda$TWvtyPFk-iHdx0R-btWVLevVLT0(Unknown Source:0)
	at androidx.activity.result.ActivityResultRegistry$$ExternalSyntheticLambda0.onStateChanged(D8$$SyntheticClass:0)
	at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.jvm.kt:320)
	at androidx.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.jvm.kt:257)
	at androidx.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.jvm.kt:293)
	at androidx.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.jvm.kt:142)
	at androidx.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.jvm.kt:124)
	at androidx.lifecycle.ReportFragment$Companion.dispatch$lifecycle_runtime_release(ReportFragment.android.kt:190)
	at androidx.lifecycle.ReportFragment$LifecycleCallbacks.onActivityPostStarted(ReportFragment.android.kt:119)
	at android.app.Activity.dispatchActivityPostStarted(Activity.java:1419)
	at android.app.Activity.performStart(Activity.java:8236)
	at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3796)
	at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
	at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
	at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2291)
	at android.os.Handler.dispatchMessage(Handler.java:106)
	at android.os.Looper.loopOnce(Looper.java:210)

I think this issue occurs because canAccess(Object) is only available in Java 9+, but Android uses Java 8 APIs.

So, how can i fix this?
Any help is much apricated.

Thanks & Regards

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions