我有一个运行完美的 Java 应用程序,现在我正在尝试将其转换为 Android。 在转换为 android 之前,与数据库的连接有效,但现在它只是没有连接,我不知道为什么。
我知道让 PSQL 连接到 Android 上的数据库一点也不安全,但它是一个小型个人应用程序。
Class.forName("org.postgresql.Driver");
final String URL = "my server";
final String USERNAME = "user";
final String PASSWORD = "pas";
.>272 Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
错误:
org.postgresql.util.PSQLException: The connection attempt failed.
at com.example.loto6din49.DatabaseMethods.dropWinningNumbers(DatabaseMethods.java:272)
Caused by: java.net.SocketException: socket failed: EACCES (Permission denied)
如果有任何我应该提供的更多信息,请回复评论。
提前致谢。
编辑: 我在 list 中添加了一些权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
我现在得到的错误是:
org.postgresql.util.PSQLException: Something unusual has occurred to cause the driver to fail. Please report this exception. W/System.err: at org.postgresql.Driver.connect(Driver.java:277) Caused by: android.os.NetworkOnMainThreadException
最佳答案
通过向 list 添加权限解决了问题
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
之后,对于驱动程序错误的修复是这样的:
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
说明:“要在 Android 上使用 jdbc,必须使用 StrictMode。这可以通过使用以下代码行来完成:”
关于java - Android App Studio 上的 PSQL 连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54503286/