Bonjour,

J'essaye de connecter mon application android avec ma base de données ms access pour se faire je souhaite utiliser le driver ucanaccess. Je code sous android studio avec gradle pour build.

J'ai initialisé les dependencies pour les fichiers .jar ucanaccess et hsqldb télécharger depuis https://mvnrepository.com/artifact/n...anaccess/5.0.1

Malheureusement lorsque je compile je me retrouve avec l'erreur suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
java.lang.NoClassDefFoundError: Failed resolution of: Ljava/sql/DriverAction;
cell-ci semble provenir à la suite de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Class.forName("org.hsqldb.jdbc.JDBCDriver");
Voici mon main:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
 
package fr.Emka.Banc_test;
 
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
 
 
public class MainActivity extends AppCompatActivity {
    private static final String TAG = "ENR";
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        Spinner _Client_ref = (Spinner) findViewById(R.id.client_ref);      /*déclaration spinner pour client_ref*/
        Spinner _Ref = (Spinner) findViewById(R.id.ref_vente);
        Spinner Client_banc = (Spinner) findViewById(R.id.client_banc);
        Spinner Banc = (Spinner) findViewById(R.id.banc);
 
        List<String> listSpinClientRef = new ArrayList<String>();
        List<String> listSpinRef = new ArrayList<String>();
        List<String> listSpinClientBanc = new ArrayList<String>();
        List<String> listSpinBanc = new ArrayList<String>();
 
        listSpinRef.add("Sélectionner une Référence");
        listSpinClientRef.add("Sélectionner un Client");
        listSpinClientBanc.add("Sélectionner un Client");
        listSpinBanc.add("Sélectionner un Banc");
 
        try {
            Class.forName("org.hsqldb.jdbc.JDBCDriver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            System.out.println("class hsqldb fail");
        }
        try {
            Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
        }
        catch (ClassNotFoundException e1) {
            e1.printStackTrace();
            System.out.println("class ucanaccess fail");
        }
 
 
        //connection to access database
 
        try {
            Connection base = DriverManager.getConnection("jdbc:ucanaccess://C:/Users/lcor/AndroidStudioProjects/Banc_test/Banc_test.accdb");
            System.out.println("Connected to MS Access database");
            Log.d(TAG,"Connected to MS  Access database");
            //query select records
            String SQL = "SELECT DISTINCT Client FROM Liste_bancs";
            ResultSet result = base.createStatement().executeQuery(SQL);
            //loop implement record in spinner
            while (result.next())
            {
                String client = result.getString("Liste_bancs");
                listSpinClientRef.add(client);
            }
 
            base.close();
        }
        catch (SQLException e) {
            e.printStackTrace();
            System.out.println("connection fail");
        }
 
        listSpinClientRef.add("emka");
        ArrayAdapter<String> spin_Client_ref = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item,listSpinClientRef);
        spin_Client_ref.setDropDownViewResource(android.R.layout.simple_spinner_item);
        _Client_ref.setAdapter(spin_Client_ref);
 
        ArrayAdapter<String> spin_ref = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item,listSpinRef);
        spin_ref.setDropDownViewResource(android.R.layout.simple_spinner_item);
        _Ref.setAdapter(spin_ref);
 
        ArrayAdapter<String> spin_Client_banc = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item,listSpinClientBanc);
        spin_Client_banc.setDropDownViewResource(android.R.layout.simple_spinner_item);
        Client_banc.setAdapter(spin_Client_banc);
 
        ArrayAdapter<String> spin_Banc = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item,listSpinBanc);
        spin_Banc.setDropDownViewResource(android.R.layout.simple_spinner_item);
        Banc.setAdapter(spin_Banc);
    }
 
}
Les errreures du run:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: fr.Emka.Banc_test, PID: 7606
    java.lang.NoClassDefFoundError: Failed resolution of: Ljava/sql/DriverAction;
        at java.lang.Class.classForName(Native Method)
        at java.lang.Class.forName(Class.java:454)
        at java.lang.Class.forName(Class.java:379)
        at fr.Emka.Banc_test.MainActivity.onCreate(MainActivity.java:41)
        at android.app.Activity.performCreate(Activity.java:8000)
        at android.app.Activity.performCreate(Activity.java:7984)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "java.sql.DriverAction" on path: DexPathList[[dex file "/data/data/fr.Emka.Banc_test/code_cache/.overlay/base.apk/classes.dex", zip file "/data/app/~~LjF_TspCLlUAUpP6Ut8Mhg==/fr.Emka.Banc_test-_7ZtNzhTuBpJtSB_Ewbvng==/base.apk"],nativeLibraryDirectories=[/data/app/~~LjF_TspCLlUAUpP6Ut8Mhg==/fr.Emka.Banc_test-_7ZtNzhTuBpJtSB_Ewbvng==/lib/x86, /system/lib, /system_ext/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at java.lang.Class.classForName(Native Method)*
        at java.lang.Class.forName(Class.java:454)*
        at java.lang.Class.forName(Class.java:379)*
        at fr.Emka.Banc_test.MainActivity.onCreate(MainActivity.java:41)*
        at android.app.Activity.performCreate(Activity.java:8000)*
        at android.app.Activity.performCreate(Activity.java:7984)*
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)*
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)*
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)*
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)*
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)*
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)*
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)*
        at android.os.Handler.dispatchMessage(Handler.java:106)*
        at android.os.Looper.loop(Looper.java:223)*
        at android.app.ActivityThread.main(ActivityThread.java:7656)*
        at java.lang.reflect.Method.invoke(Native Method)*
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)*
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)*
I/Process: Sending signal. PID: 7606 SIG: 9
et mon build.gradle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
plugins {
    id 'com.android.application'
}
 
android {
    compileSdkVersion 30
    buildToolsVersion "30.0.3"
 
    defaultConfig {
        applicationId "fr.Emka.Banc_test"
        minSdkVersion 16
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
 
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
 
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}
 
dependencies {
 
    //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:2.0.1'
    implementation group: 'net.sf.ucanaccess', name: 'ucanaccess', version: '5.0.1'
    testImplementation group: 'org.hsqldb', name: 'hsqldb', version: '2.5.0'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}