我的应用程序使用基于database
的sqlite-jdbc
。当我生成可运行的jar
文件时,连接到我的数据库工作正常,但如果我让Proguard
处理我的应用程序,它会破坏数据库连接。
以下代码与提交的数据库文件路径建立连接。使用Proguard时,消息“已连接!”永远不会被打印,因此getConnection()
被卡住了。
import java.sql.Connection;
import java.sql.DriverManager;
import javax.swing.JOptionPane;
private void loadDatabase(String databaseName) throws SQLException
{
String databaseLibrary = "jdbc:sqlite:";
JOptionPane.showMessageDialog(null, "Getting connection...");
Connection databaseConnection = DriverManager.getConnection(databaseLibrary
+ databaseName);
JOptionPane.showMessageDialog(null, "Got connection!");
// ...
}
只有在Proguard中禁用Shrink
和Obfuscate
选项时,数据库连接才会在处理后中断。
关于如何解决这个问题以及为什么会发生这种情况的任何想法?