【问题标题】:I can make a http post on android emulator but can't in cell phone我可以在 android 模拟器上发 http 帖子,但不能在手机上发帖
【发布时间】:2013-04-24 13:06:17
【问题描述】:

我正在使用此代码发送帖子:

try {
    // Add your data
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
    nameValuePairs.add(new BasicNameValuePair("imagem", "1"));
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

    // Execute HTTP Post Request
    HttpResponse response = httpclient.execute(httppost);

} catch (ClientProtocolException e) {
    // TODO Auto-generated catch block
} catch (IOException e) {
    // TODO Auto-generated catch block
}
v.setEnabled(true);

它在我的模拟器上运行良好。我已经在其他帖子上搜索了如何解决这个问题,我发现的是关于具有互联网权限的 android 清单。 这是我的清单:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />
    <uses-permission android:name="android.permission.INTERNET" />

<application
    android:allowBackup="true"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="imp.projecto.teste.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity android:name=".ActivityImagem" />
    <activity android:name=".ActivityVideo" />
    <activity android:name=".ActivityMusica" />
    <activity android:name=".ActivityRadio" />
    <activity android:name=".ActivityOpcoes" />

</application>

我不知道我是否在正确的地方使用了互联网许可代码,以及它是否能正常工作。 我真的需要一些帮助和一些指导。

【问题讨论】:

  • 如果有错误或异常请提供一些日志输出
  • 你的问题是什么。您的应用程序在模拟器中运行,而不是在 android 真实设备上运行吗?是这样吗?
  • 清理你的项目,重启手机再试一次。
  • catch 块中的日志语句怎么样?当你吞下它们时,你怎么能看到你的应用程序抛出异常?
  • @WarrenFaith,我很确定这是NetworkOnMainThreadException

标签: android androidhttpclient


【解决方案1】:

您似乎正试图在主 UI 线程上运行网络请求。自 3.0 以来,Android 不允许您这样做(我相信)。这样做会导致您的 UI 锁定直到请求完成,从而使您的应用在请求执行期间无用。

您必须在新的ThreadASyncTask 中运行您的请求,以承担 UI 线程的负载。你可以找到更多关于如何使用多线程的信息here.

【讨论】:

  • 感谢您的输入,但这不是真正的问题,因为我在 android 2.2 中运行它。我的问题是,当我在模拟器 2.2 中运行我的应用程序时一切正常,但是当我尝试在我的手机中运行模拟器时,女巫是 android 2.3.4 帖子停止工作并且应用程序没有给出任何错误或异常.
  • 嗯...你没有对它在你发布的代码中抛出的异常做任何事情,所以这可以解释为什么你没有看到任何错误。你抓住它们,但你不处理它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-24
相关资源
最近更新 更多