0

为什么我必须删除

<uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />

使

<uses-permission android:name="android.permission.INTERNET" />

工作?

如果我将两者都保留,则在使用尝试访问网络的功能时会出现异常。

4

2 回答 2

2

由于您没有向我们提供堆栈跟踪,因此我在给出这个答案时有点猜测。

我的猜测是你得到一个NetworkOnMainThreadException. 此异常发生在 Android 3.0 及更高版本上,当您尝试在主 UI 线程上使用网络时。当您将<uses-sdk>标签添加到您的应用程序时,您将针对高于 Honeycomb 的 API 16 构建您的应用程序。这也解释了为什么您在 Gingerbread 上看不到异常。

要解决此问题,请将所有网络代码移动到ThreadAsyncTask中。

于 2013-01-30T20:45:41.830 回答
-1

这是不正确的。您无需删除

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="16" />

确保

<uses-permission android:name="android.permission.INTERNET" />

被放置在

<uses-sdk>

标签和之前

<application>

标签。

您还可以参考在 Android 清单文件中添加 uses-sdk 字段导致崩溃

于 2013-01-30T20:47:05.633 回答