有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android 2.3.3 internet可以在我的Galaxy S上运行,但不能在我的Galaxy选项卡上运行?(许可?)

我有一个奇怪的问题。我正在检索推特,它可以在模拟器上运行,也可以在三星Galaxy S上运行,但在Galaxy Tab 10.1上不运行

手机和标签上都安装了相同的应用程序。从Eclipse生成,因此无需调试或任何操作

需要不同的权限吗

代码如下:

HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(searchUrl);

ResponseHandler<String> responseHandler = new BasicResponseHandler();

responseBody = client.execute(get, responseHandler);

这是舱单:

<uses-sdk 安卓:minSdkVersion="10" />

<uses-permission 安卓:name="安卓.permission.INTERNET"  />
<uses-permission 安卓:name="安卓.permission.ACCESS_NETWORK_STATE"/>

共 (2) 个答案

  1. # 1 楼答案

    我发誓,这个问题每天都被问到

    问题是您正在主UI线程上执行网络访问。如果您试图在主线程上执行HTTP请求,Android 3.0及以上版本将使您的应用程序崩溃(即系统将抛出NetworkAccessOnMainThread异常)。您需要将HTTP请求包装在AsyncTask(或某种类型的Thread)中,以确保不阻塞UI线程

    阅读我关于这个主题的博客帖子:

    Why Ice Cream Sandwich Crashes Your App

  2. # 2 楼答案

    使用这个代码,它适合我

    if (android.os.Build.VERSION.SDK_INT > 8) {
    
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
    
        }