Androidスタジオ2.2.3から3.0.1にアップデートしました。今、私の.jarの依存関係は何とか壊れています。ここでアンドロイドスタジオ3.0.1にアップデートされました。JDBC .jar依存関係が動作しません。
java.lang.ClassNotFoundException: org.sqlite.JDBC
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.DataAccessObjects.DataAccessObject.openConnection(DataAccessObject.java:56)
at com.DataAccessObjects.DataAccessObject.updateDb(DataAccessObject.java:35)
at com.DataAccessObjects.AuthTokenDao.createTable(AuthTokenDao.java:45)
at com.Services.Service.newDaosAtDb(Service.java:45)
at com.Services.ClearService.<init>(ClearService.java:19)
at com.Handlers.ClearHandler.<init>(ClearHandler.java:28)
at com.Server.run(Server.java:37)
at com.Server.main(Server.java:26)
Exception in thread "main" java.lang.NullPointerException
at com.DataAccessObjects.DataAccessObject.updateDb(DataAccessObject.java:37)
at com.DataAccessObjects.AuthTokenDao.createTable(AuthTokenDao.java:45)
at com.Services.Service.newDaosAtDb(Service.java:45)
at com.Services.ClearService.<init>(ClearService.java:19)
at com.Handlers.ClearHandler.<init>(ClearHandler.java:28)
at com.Server.run(Server.java:37)
at com.Server.main(Server.java:26)
はそれらなしで、それは文句を言うので、それは、JUnitのとgsonで適切に扱う
dependencies {
implementation files('libs/junit-4.12.jar')
implementation 'com.google.code.gson:gson:2.2.4'
implementation files('libs/sqlite-jdbc-3.7.2.jar')
}
build.gradleモジュールの私の依存関係です。しかし、jdbc .jarをインクルードするかどうかに関わらず、同じエラーメッセージが返されます。
EDIT1:どういうわけか、これを破ったのは更新版だとわかっています。私は、2.2.3がインストールされたコンピュータを持っています。私が知っている限り、まったく同じ.jarファイルであり、問題はありません。興味深いのは、3.0.1では「実装ファイル(...)」と書かれていますが、2.2.3では「コンパイルファイル(...)」と書かれています。
EDIT2:私はorg.sqlite.JDBCオブジェクトをインスタンス化することができ、Android Studioはそれが有効なクラスであることを認識しますが、Class.forName( "org.sqlite.JDBC")を呼び出すと、突然有効なクラスではなくなります...
public void openConnection()throws SQLException{
try {
assert connection == null;
assert dbName.length()>0;
org.sqlite.JDBC hi = null; //valid code
Class.forName("org.sqlite.JDBC"); //ClassNotFoundException: org.sqlite.JDBC
connection = DriverManager.getConnection("jdbc:sqlite:" + dbName);