我有一个名为ojdbc6.jar
的库,我需要使用它来连接到Oracle 11g数据库。我已将该文件添加到libs
文件夹中,作为范围compile
的依赖项添加到项目中,但是当我使用品牌手机通过USB调试应用程序时,该应用程序会引发异常说它无法找到通过Class.forName
加载的指定类。相反,使用具有root权限的自定义rom(CM12.1),不会抛出任何异常。我应该如何将库添加到APK,以便可以使用每个设备找到它?
这是引发异常的堆栈跟踪:
07-08 14:50:27.749 9115-9223/? E/BYTES﹕ java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:251)
at java.lang.Class.forName(Class.java:216)
at com.example.francesco.ferieepermessi.LoginActivity$LoginTask.doInBackground(LoginActivity.java:110)
at com.example.francesco.ferieepermessi.LoginActivity$LoginTask.doInBackground(LoginActivity.java:104)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.VerifyError: oracle/jdbc/driver/OracleDriver
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:251)
at java.lang.Class.forName(Class.java:216)
at com.example.francesco.ferieepermessi.LoginActivity$LoginTask.doInBackground(LoginActivity.java:110)
at com.example.francesco.ferieepermessi.LoginActivity$LoginTask.doInBackground(LoginActivity.java:104)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
答案 0 :(得分:0)
执行以下操作
右键点击模块 - >打开模块设置 - >依赖关系 - >你会找到你的图书馆。如果不是
在libs文件夹中添加您的库,然后
右键单击libs文件夹 - >添加为库 - >选择您必须添加库的模块(选择模块而不是项目) - >确定