java地址。Android上的getByName
我做了一个:
java.net.InetAddress serverAddr;
try {
serverAddr = java.net.InetAddress.getByName(Server.SERVERNAME);
}
catch (java.net.UnknownHostException exception) {
//System.err.println ("wrong server name !!!");
HelloWorldActivity.tv.setText("wrong server name !!!");
return;
}
在我的安卓应用程序中,它从不解析主机名,无论我使用什么名称,它都会抛出一个异常
但在同一个模拟器上使用互联网是可行的,我补充说
<uses-permission 安卓:name="安卓.permission.INTERNET" />
<uses-permission 安卓:name="安卓.permission.ACCESS_NETWORK_STATE" />
来证明。xml
这是一个服务器类,适用于那些认为我没有服务器的人
public class Server
{
public static String SERVERNAME = "monster.idsoftware.com";
public static String SERVERIP = "209.85.129.99";
public static int SERVERPORT = 27950;
public static int PROTOCOL = 68;
}
# 1 楼答案
我也遇到了类似的问题,我发现在某些版本的android(来自honeycombs)中,默认情况下不允许从主线程执行网络操作。所以你可以用两种方法来解决它。在不同线程中执行操作或允许在主线程中进行网络操作。要做到这一点,请使用以下方法:
# 2 楼答案
不知道是不是打字错误,但你说你有:
但必须是:
我试过getByName,效果很好
您是否已修复权限并同时从getByName切换到getAllByName?只是好奇,如果你能确认getByName仍然不适合你