首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android URL 載入圖片失敗:域名解析失敗與網絡權限配置排查

     編輯:程式設計綜合問答

錯誤信息解讀

`UnknownHostException: www.crazyit.org` → **DNS 解析失敗**,設備無法將域名解析為 IP 地址。非代碼邏輯錯誤,非權限問題 (權限缺失拋 `SecurityException`)。

排查步驟

  1. **設備網絡通暢**:瀏覽器打開 `https://www.crazyit.org` 確認可達。
  2. **DNS 配置**:嘗試 `8.8.8.8` / `114.114.114.114` (設置 → WiFi → 修改網絡 → DHCP → 靜態 → DNS)。
  3. **域名是否存在**:該教程域名可能已過期/停止服務。**請換用可用圖片 URL** (如 `https://httpbin.org/image/png`)。
  4. **Android 9+ 明文流量限制**:`AndroidManifest.xml` 添加 `android:usesCleartextTraffic="true"` (application 標籤) 或配置 `network_security_config.xml`。< /li>

修正代碼關鍵點

// 1. 使用可用的 HTTPS 圖片 URL
String urlStr = "https://httpbin.org/image/png";

// 2. 子線程網絡請求 (已正確)
new Thread(() -> {
    try {
        URL url = new URL(urlStr);
        Bitmap bitmap = BitmapFactory.decodeStream(url.openConnection().getInputStream());
        runOnUiThread(() -> imageView.setImageBitmap(bitmap));
    } catch (IOException e) { e.printStackTrace(); }
}).start();

// 3. 權限 (已配置)
<uses-permission android:name="android.permission.INTERNET" />

最佳實踐:使用成熟圖片加載庫

  • Glide:`Glide.with(this).load(url).into(imageView);` 自動處理緩存、生命週期、錯誤佔位圖。
  • Picasso / Coil (Kotlin 協程)。< /li>
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved