java.lang.NoClassDefFoundError: Failed resolution of: Ljava/sql/DriverAction;

730 views Asked by At

I am trying to use Ucanaccess java package for my android app project. I have already installed the jar files in the libs folder, i.e. here is my project structure:

android / app / libs / (the dependencies for ucanaccess as well as the ucanaccess.jar) file

and added it to app level build.gradle dependencies block as:

dependencies {
    implementation files('libs/commons-lang3-3.8.1.jar')
    implementation files('libs/commons-logging-1.2.jar')
    implementation files('libs/hsqldb-2.5.0.jar')
    implementation files('libs/jackcess-3.0.1.jar')
    implementation files('libs/ucanaccess-5.0.1.jar')
}

Now that when i am trying to call:

        try {
            System.out.println("Getting path");
            final String root = "jdbc:ucanaccess:/" + Environment.getExternalStorageDirectory().toString() + "/files/demo.accdb";
            System.out.println(root);

            System.out.println("Registering the database driver");
            Driver driver = new net.ucanaccess.jdbc.UcanaccessDriver();
            DriverManager.registerDriver(driver);

            System.out.println("getting the respective driver");
            DriverManager.getDriver(root);


            System.out.println("Reading the database file");
            Connection connection = DriverManager.getConnection(root);
            System.out.println(connection);
}.... blah blah blah catches

I get an exception saying

2021-08-29 19:29:19.666 20078-20078/com.dev404.dbviewer I/System.out: Registering the database driver
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe: Rejecting re-init on previously-failed class java.lang.Class<org.hsqldb.jdbc.JDBCDriver>: java.lang.NoClassDefFoundError: Failed resolution of: Ljava/sql/DriverAction;
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at java.lang.Object java.lang.Class.newInstance() (Class.java:-2)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at java.lang.Object java.util.ServiceLoader$LazyIterator.nextService() (ServiceLoader.java:388)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at java.lang.Object java.util.ServiceLoader$LazyIterator.next() (ServiceLoader.java:416)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at java.lang.Object java.util.ServiceLoader$1.next() (ServiceLoader.java:494)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at java.lang.Void java.sql.DriverManager$2.run() (DriverManager.java:519)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at java.lang.Object java.sql.DriverManager$2.run() (DriverManager.java:499)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at java.lang.Object java.security.AccessController.doPrivileged(java.security.PrivilegedAction) (AccessController.java:43)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void java.sql.DriverManager.loadInitialDrivers() (DriverManager.java:499)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void java.sql.DriverManager.<clinit>() (DriverManager.java:103)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void java.sql.DriverManager.registerDriver(java.sql.Driver) (DriverManager.java:-1)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void net.ucanaccess.jdbc.UcanaccessDriver.<clinit>() (UcanaccessDriver.java:47)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at int com.dev404.dbviewer.dbHandler.openDB() (dbHandler.java:20)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void com.dev404.dbviewer.MainActivity.lambda$configureFlutterEngine$0(io.flutter.plugin.common.MethodCall, io.flutter.plugin.common.MethodChannel$Result) (MainActivity.java:24)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void com.dev404.dbviewer.-$$Lambda$MainActivity$AES_SS5TJ1Ct4F4yQBFfOm5-Yjg.onMethodCall(io.flutter.plugin.common.MethodCall, io.flutter.plugin.common.MethodChannel$Result) (lambda:-1)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(java.nio.ByteBuffer, io.flutter.plugin.common.BinaryMessenger$BinaryReply) (MethodChannel.java:233)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(java.lang.String, byte[], int) (DartMessenger.java:85)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(java.lang.String, byte[], int) (FlutterJNI.java:818)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void android.os.MessageQueue.nativePollOnce(long, int) (MessageQueue.java:-2)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at android.os.Message android.os.MessageQueue.next() (MessageQueue.java:336)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void android.os.Looper.loop() (Looper.java:180)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7562)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:539)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:950)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe: Caused by: java.lang.ClassNotFoundException: Didn't find class "java.sql.DriverAction" on path: DexPathList[[zip file "/data/app/com.dev404.dbviewer-1yCeH28nUTz7jXd-jyqZRg==/base.apk"],nativeLibraryDirectories=[/data/app/com.dev404.dbviewer-1yCeH28nUTz7jXd-jyqZRg==/lib/arm64, /data/app/com.dev404.dbviewer-1yCeH28nUTz7jXd-jyqZRg==/base.apk!/lib/arm64-v8a, /system/lib64, /system/product/lib64]]
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:230)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at java.lang.Object java.lang.Class.newInstance() (Class.java:-2)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at java.lang.Object java.util.ServiceLoader$LazyIterator.nextService() (ServiceLoader.java:388)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at java.lang.Object java.util.ServiceLoader$LazyIterator.next() (ServiceLoader.java:416)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at java.lang.Object java.util.ServiceLoader$1.next() (ServiceLoader.java:494)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at java.lang.Void java.sql.DriverManager$2.run() (DriverManager.java:519)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at java.lang.Object java.sql.DriverManager$2.run() (DriverManager.java:499)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at java.lang.Object java.security.AccessController.doPrivileged(java.security.PrivilegedAction) (AccessController.java:43)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void java.sql.DriverManager.loadInitialDrivers() (DriverManager.java:499)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void java.sql.DriverManager.<clinit>() (DriverManager.java:103)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void java.sql.DriverManager.registerDriver(java.sql.Driver) (DriverManager.java:-1)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void net.ucanaccess.jdbc.UcanaccessDriver.<clinit>() (UcanaccessDriver.java:47)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at int com.dev404.dbviewer.dbHandler.openDB() (dbHandler.java:20)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void com.dev404.dbviewer.MainActivity.lambda$configureFlutterEngine$0(io.flutter.plugin.common.MethodCall, io.flutter.plugin.common.MethodChannel$Result) (MainActivity.java:24)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void com.dev404.dbviewer.-$$Lambda$MainActivity$AES_SS5TJ1Ct4F4yQBFfOm5-Yjg.onMethodCall(io.flutter.plugin.common.MethodCall, io.flutter.plugin.common.MethodChannel$Result) (lambda:-1)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(java.nio.ByteBuffer, io.flutter.plugin.common.BinaryMessenger$BinaryReply) (MethodChannel.java:233)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(java.lang.String, byte[], int) (DartMessenger.java:85)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(java.lang.String, byte[], int) (FlutterJNI.java:818)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void android.os.MessageQueue.nativePollOnce(long, int) (MessageQueue.java:-2)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at android.os.Message android.os.MessageQueue.next() (MessageQueue.java:336)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void android.os.Looper.loop() (Looper.java:180)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7562)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:539)
2021-08-29 19:29:19.681 20078-20078/com.dev404.dbviewer I/dev404.dbviewe:     at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:950)
2021-08-29 19:29:19.682 20078-20078/com.dev404.dbviewer I/System.out: No class found exception!
2021-08-29 19:29:19.682 20078-20078/com.dev404.dbviewer W/System.err: java.lang.NoClassDefFoundError: org.hsqldb.jdbc.JDBCDriver
2021-08-29 19:29:19.682 20078-20078/com.dev404.dbviewer W/System.err:     at java.lang.Class.classForName(Native Method)
2021-08-29 19:29:19.682 20078-20078/com.dev404.dbviewer W/System.err:     at java.lang.Class.forName(Class.java:454)
2021-08-29 19:29:19.682 20078-20078/com.dev404.dbviewer W/System.err:     at java.lang.Class.forName(Class.java:379)
2021-08-29 19:29:19.682 20078-20078/com.dev404.dbviewer W/System.err:     at net.ucanaccess.jdbc.UcanaccessDriver.<clinit>(UcanaccessDriver.java:48)
2021-08-29 19:29:19.682 20078-20078/com.dev404.dbviewer W/System.err:     at com.dev404.dbviewer.dbHandler.openDB(dbHandler.java:20)
2021-08-29 19:29:19.682 20078-20078/com.dev404.dbviewer W/System.err:     at com.dev404.dbviewer.MainActivity.lambda$configureFlutterEngine$0(MainActivity.java:24)
2021-08-29 19:29:19.682 20078-20078/com.dev404.dbviewer W/System.err:     at com.dev404.dbviewer.-$$Lambda$MainActivity$AES_SS5TJ1Ct4F4yQBFfOm5-Yjg.onMethodCall(Unknown Source:0)
2021-08-29 19:29:19.683 20078-20078/com.dev404.dbviewer W/System.err:     at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:233)
2021-08-29 19:29:19.683 20078-20078/com.dev404.dbviewer W/System.err:     at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:85)
2021-08-29 19:29:19.683 20078-20078/com.dev404.dbviewer W/System.err:     at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:818)
2021-08-29 19:29:19.683 20078-20078/com.dev404.dbviewer W/System.err:     at android.os.MessageQueue.nativePollOnce(Native Method)
2021-08-29 19:29:19.683 20078-20078/com.dev404.dbviewer W/System.err:     at android.os.MessageQueue.next(MessageQueue.java:336)
2021-08-29 19:29:19.683 20078-20078/com.dev404.dbviewer W/System.err:     at android.os.Looper.loop(Looper.java:180)
2021-08-29 19:29:19.683 20078-20078/com.dev404.dbviewer W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:7562)
2021-08-29 19:29:19.683 20078-20078/com.dev404.dbviewer W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
2021-08-29 19:29:19.683 20078-20078/com.dev404.dbviewer W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
2021-08-29 19:29:19.683 20078-20078/com.dev404.dbviewer W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
2021-08-29 19:29:19.683 20078-20078/com.dev404.dbviewer W/System.err: Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Ljava/sql/DriverAction;
2021-08-29 19:29:19.683 20078-20078/com.dev404.dbviewer W/System.err:     at java.lang.Class.newInstance(Native Method)
2021-08-29 19:29:19.683 20078-20078/com.dev404.dbviewer W/System.err:     at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:388)
2021-08-29 19:29:19.684 20078-20078/com.dev404.dbviewer W/System.err:     at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:416)
2021-08-29 19:29:19.684 20078-20078/com.dev404.dbviewer W/System.err:     at java.util.ServiceLoader$1.next(ServiceLoader.java:494)
2021-08-29 19:29:19.684 20078-20078/com.dev404.dbviewer W/System.err:     at java.sql.DriverManager$2.run(DriverManager.java:519)
2021-08-29 19:29:19.684 20078-20078/com.dev404.dbviewer W/System.err:     at java.sql.DriverManager$2.run(DriverManager.java:499)
2021-08-29 19:29:19.684 20078-20078/com.dev404.dbviewer W/System.err:     at java.security.AccessController.doPrivileged(AccessController.java:43)
2021-08-29 19:29:19.684 20078-20078/com.dev404.dbviewer W/System.err:     at java.sql.DriverManager.loadInitialDrivers(DriverManager.java:499)
2021-08-29 19:29:19.684 20078-20078/com.dev404.dbviewer W/System.err:     at java.sql.DriverManager.<clinit>(DriverManager.java:103)
2021-08-29 19:29:19.684 20078-20078/com.dev404.dbviewer W/System.err:     at java.sql.DriverManager.registerDriver(Unknown Source:0)
2021-08-29 19:29:19.684 20078-20078/com.dev404.dbviewer W/System.err:     at net.ucanaccess.jdbc.UcanaccessDriver.<clinit>(UcanaccessDriver.java:47)
2021-08-29 19:29:19.684 20078-20078/com.dev404.dbviewer W/System.err:   ... 13 more
2021-08-29 19:29:19.684 20078-20078/com.dev404.dbviewer W/System.err: Caused by: java.lang.ClassNotFoundException: Didn't find class "java.sql.DriverAction" on path: DexPathList[[zip file "/data/app/com.dev404.dbviewer-1yCeH28nUTz7jXd-jyqZRg==/base.apk"],nativeLibraryDirectories=[/data/app/com.dev404.dbviewer-1yCeH28nUTz7jXd-jyqZRg==/lib/arm64, /data/app/com.dev404.dbviewer-1yCeH28nUTz7jXd-jyqZRg==/base.apk!/lib/arm64-v8a, /system/lib64, /system/product/lib64]]
2021-08-29 19:29:19.684 20078-20078/com.dev404.dbviewer W/System.err:     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:230)
2021-08-29 19:29:19.685 20078-20078/com.dev404.dbviewer W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
2021-08-29 19:29:19.685 20078-20078/com.dev404.dbviewer W/System.err:     at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
2021-08-29 19:29:19.685 20078-20078/com.dev404.dbviewer W/System.err:   ... 24 more
2021-08-29 19:29:19.702 20078-20118/com.dev404.dbviewer I/flutter: PlatformException(Failed, Failed to open database, null, null)

Not sure whats wrong tho... cause according to my java version logs i am at openjdk1.8 (which i think is the same as java 8)..

sheharyar566@sheharyar566-Latitude-E5430-non-vPro:~$ java -version
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~20.04-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
0

There are 0 answers