首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >引起NoClassDefFoundError的Postgresql JDBC驱动程序

引起NoClassDefFoundError的Postgresql JDBC驱动程序
EN

Stack Overflow用户
提问于 2018-12-18 07:46:42
回答 1查看 1.6K关注 0票数 0

我正在尝试获取我正在开发的应用程序以连接到Postgresql服务器。我已经从官方Postgresql JDBC驱动程序页面下载了postgresql-42.2.5.jre7,将jar放在libs目录中,在类路径中添加了一行以便它可以编译。在我真正尝试建立连接之前,一切都运行得很好,在这一点上我得到了这个错误:

代码语言:javascript
复制
Caused by: java.lang.ClassNotFoundException: Didn't find class "java.util.Locale$Category" on path: DexPathList[[zip file "/data/app/swca.lithicdebitagetally-2/base.apk"],nativeLibraryDirectories=[/data/app/swca.lithicdebitagetally-2/lib/arm, /vendor/lib, /system/lib]]
            at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
            at org.postgresql.util.GT.<init>(GT.java:35)
            at org.postgresql.util.GT.<clinit>(GT.java:21)
            at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:292)
            at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
            at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:195)
            at org.postgresql.Driver.makeConnection(Driver.java:454)
            at org.postgresql.Driver.connect(Driver.java:256)
            at java.sql.DriverManager.getConnection(DriverManager.java:179)
            at java.sql.DriverManager.getConnection(DriverManager.java:213)
            at swca.lithicdebitagetally.UploadData.doInBackground(UploadData.java:31)
            at swca.lithicdebitagetally.UploadData.doInBackground(UploadData.java:14)
            at android.os.AsyncTask$2.call(AsyncTask.java:295)
            at java.util.concurrent.FutureTask.run(FutureTask.java:237)
            at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
            at java.lang.Thread.run(Thread.java:818)
    Suppressed: java.lang.ClassNotFoundException: java.util.Locale$Category
            at java.lang.Class.classForName(Native Method)
            at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
            at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
            ... 18 more
     Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

我真的很困惑为什么要拍摄这个,尽管这可能与我使用的驱动程序的版本有关。(似乎我应该使用42.2.5,它应该与Java 8兼容,但我每次使用它都会收到编译错误)。

下面是调用它的代码:

代码语言:javascript
复制
protected String doInBackground(String... params){
    Connection connection = null;
    String result = "success";

    try{
        Class.forName("org.postgresql.Driver");
    }

    catch(ClassNotFoundException e)
    {
        e.printStackTrace();
        result = "fail";
    }

    try {
        connection = DriverManager.getConnection(
                "jdbc:postgresql://**.*.****.***:***/*****", "****",
                "****");
    } catch (SQLException e) {
        System.out.println("Connection Failed! Check output console");
        e.printStackTrace();
        result = "fail";

    }

    return result;
}
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53824560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档