Java 访问postgresql数据库时出现NetworkOnMainThread异常

Java 访问postgresql数据库时出现NetworkOnMainThread异常,java,android,postgresql,exception,Java,Android,Postgresql,Exception,好吧,尝试使用Android访问postgresql数据库时,我得到了以下非常令人惊讶的异常: org.postgresql.util.PSQLException: Something unusual has occurred to cause the driver to fail. Please report this exception. at org.postgresql.Driver.connect(Driver.java:305) at java.sql

好吧,尝试使用Android访问postgresql数据库时,我得到了以下非常令人惊讶的异常:

org.postgresql.util.PSQLException: Something unusual has occurred to cause the driver to fail. Please report this exception. at org.postgresql.Driver.connect(Driver.java:305) at java.sql.DriverManager.getConnection(DriverManager.java:179) at java.sql.DriverManager.getConnection(DriverManager.java:213) at org.pbdevelopement.cineapp.NetReader.getConnection(NetReader.java:42) at org.pbdevelopement.cineapp.MainActivity.getPersonalMovies(MainActivity.java:242) at org.pbdevelopement.cineapp.MainActivity.onCreate(MainActivity.java:115) at android.app.Activity.performCreate(Activity.java:6034) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1111) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2332) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442) at android.app.ActivityThread.access$800(ActivityThread.java:156) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:211) at android.app.ActivityThread.main(ActivityThread.java:5373) 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:1020) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815) Caused by: android.os.NetworkOnMainThreadException at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1151) at java.net.InetAddress.lookupHostByName(InetAddress.java:418) at java.net.InetAddress.getAllByNameImpl(InetAddress.java:252) at java.net.InetAddress.getByName(InetAddress.java:305) at java.net.InetSocketAddress.(InetSocketAddress.java:105) at java.net.InetSocketAddress.(InetSocketAddress.java:90) at org.postgresql.core.PGStream.(PGStream.java:61) at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:129) at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:65) at org.postgresql.jdbc.PgConnection.(PgConnection.java:159) at org.postgresql.Driver.makeConnection(Driver.java:415) at org.postgresql.Driver.connect(Driver.java:283) ... 18 more org.postgresql.util.psqleexception:发生了一些异常情况,导致驱动程序失败。请报告此异常。 位于org.postgresql.Driver.connect(Driver.java:305) 位于java.sql.DriverManager.getConnection(DriverManager.java:179) 位于java.sql.DriverManager.getConnection(DriverManager.java:213) 位于org.pbdevelopement.cineapp.NetReader.getConnection(NetReader.java:42) 在org.pbdevelopement.cineapp.MainActivity.getPersonalMovies(MainActivity.java:242)上 位于org.pbdevelopement.cineapp.MainActivity.onCreate(MainActivity.java:115) 位于android.app.Activity.performCreate(Activity.java:6034) 位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1111) 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2332)上 位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442) 在android.app.ActivityThread.access$800(ActivityThread.java:156) 在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)上 位于android.os.Handler.dispatchMessage(Handler.java:102) 位于android.os.Looper.loop(Looper.java:211) 位于android.app.ActivityThread.main(ActivityThread.java:5373) 位于java.lang.reflect.Method.invoke(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:372) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815) 原因:android.os.NetworkOnMainThreadException 在android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork上(StrictMode.java:1151) 位于java.net.InetAddress.lookupHostByName(InetAddress.java:418) 位于java.net.InetAddress.getAllByNameImpl(InetAddress.java:252) 位于java.net.InetAddress.getByName(InetAddress.java:305) 位于java.net.InetSocketAddress。(InetSocketAddress.java:105) 位于java.net.InetSocketAddress。(InetSocketAddress.java:90) 位于org.postgresql.core.PGStream(PGStream.java:61) 位于org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:129) 位于org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:65) 位于org.postgresql.jdbc.PgConnection.(PgConnection.java:159) 位于org.postgresql.Driver.makeConnection(Driver.java:415) 位于org.postgresql.Driver.connect(Driver.java:283) ... 还有18个
我不知道如何解决这个问题,也不知道该向何处报告。。。有人有什么想法吗?

似乎您正试图通过应用程序主线程上的网络操作来执行数据库请求。这会引发异常,因为android中的每个网络操作都必须在自己的线程中启动。尝试在
AsyncTask
中执行数据库请求


您似乎试图通过应用程序主线程上的网络操作来执行数据库请求。这会引发异常,因为android中的每个网络操作都必须在自己的线程中启动。尝试在
AsyncTask
中执行数据库请求


您可以在此处报告Postgresql JDBC错误:为什么这个问题被否决?@bradimus您认为这值得报告吗?或者我只是愚蠢地正确使用了他们的驱动程序,不值得有更好的吗?;)您可以在这里报告Postgresql JDBC错误:为什么这个问题被否决?@bradimus您认为这值得报告吗?或者我只是愚蠢地正确使用了他们的驱动程序,不值得有更好的吗?;)同意。检查堆栈跟踪中列出的代码:
在org.pbdevelopement.cineapp.NetReader.getConnection(NetReader.java:42)在org.pbdevelopement.cineapp.MainActivity.getPersonalMovies(MainActivity.java:242)在org.pbdevelopement.cineapp.MainActivity.onCreate(MainActivity.java:115)上
并在主线程之外的某个地方实现。嗯,听起来很合理。。。但它是否应该抛出不同的异常?同意。检查堆栈跟踪中列出的代码:
在org.pbdevelopement.cineapp.NetReader.getConnection(NetReader.java:42)在org.pbdevelopement.cineapp.MainActivity.getPersonalMovies(MainActivity.java:242)在org.pbdevelopement.cineapp.MainActivity.onCreate(MainActivity.java:115)上
并在主线程之外的某个地方实现。嗯,听起来很合理。。。但它不应该抛出不同的异常吗?