Подключение к Firebird базе данных:Ошибка java.lang.NoClassDefFoundError: org.firebirdsql.jdbc.FBDataSource на Android
Когда я пытаюсь соединить мой андроид приложение для Firebird базе данных я получил следующие ошибки.
Мой LogCat:
FATAL EXCEPTION : main Process: com.example.hms.firebirdconnection, PID: 26717 java.lang.NoClassDefFoundError: org.firebirdsql.jdbc.FBDataSource at org.firebirdsql.jdbc.AbstractDriver.createDataSource(AbstractDriver.java:138) at org.firebirdsql.jdbc.AbstractDriver.connect(AbstractDriver.java:124) at java.sql.DriverManager.getConnection(DriverManager.java:179) at java.sql.DriverManager.getConnection(DriverManager.java:213) at com.example.hms.firebirdconnection.MainActivity$1.onClick(MainActivity.java:42) at android.view.View.performClick(View.java:4780) at android.view.View$PerformClick.run(View.java:19866) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Я использую JayBird-полный-2.2.3 и добавить зависимость в качестве модуля зависимости.
Мой код:
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
Class.forName("org.firebirdsql.jdbc.FBDriver");
} catch (Exception e) {
e.printStackTrace();
System.err.println(e.getMessage());
}
try {
Connection connection DriverManager.getConnection("jdbc:firebirdsql://xxx.xxx.x.x:3050//C:/User/DBNAME", "username", "password");
String sSql="selecta.TDID,a.DOCTORNAME,a.ROOMNAME,a.TOKEN from TOKEN_DISPLAY a where a.EMPID=2";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sSql);
String dr = "";
if (rs.next()) {
dr = rs.getString("DOCTORNAME");
}
System.out.println("drrrrrrrrrrr=" + dr);
);
rs.close();
} catch (SQLException e1) {
e1.printStackTrace();
return;
}
return;
}
});
Gradle:
применить плагин: '' com.android.application
андроида { compileSdkVersion 23 buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.example.hms.firebirdconnection"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.3.0'
compile files('libs/jaybird-full-2.2.10.jar')
}
Я добавил jar в папку lib, но я получил ошибки, такие как Ошибка: Выполнение не выполнено для задачи ': app: transformClassesWithJarMergingForDebug'. > com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: org/firebirdsql/ds/AbstractPooledConnection.class – user6313452
затем попробуйте удалить зависимость модуля, перейдите в настройки модуля, щелкнув правой кнопкой мыши на проект, потому что его уже присутствует в папке lib, существует конфликт при доступе к –
Запустите «gradlew dependencies», который позволит вам увидеть все библиотеки. Вы можете использовать директиву «исключить» для удаления дубликатов библиотек. https://gradle.org/docs/current/userguide/dependency_management.html#sub:exclude_transitive_dependencies –