錯誤 `Java.lang.RuntimeException: Bad URL` 表示傳給 `ImageRequest`/`NetworkImageView` 的 URL 字串**格式不合法**(含空格、中文未編碼、協議缺失、或為 `null`/`""`)。
slider_pic_URL = picJson.getString("slider_pic"); // 可能是 JSON 陣列字串,非單一 URL
picList = new JSONArray(slider_pic_URL); // 若 slider_pic_URL 本身是 "[\"url1\",\"url2\"]" 字串,這行會拋 JSONException
建議先 `Log.d("URL", slider_pic_URL)` 印出原始字串,確認結構。
String encoded = URLEncoder.encode(rawUrl, "UTF-8"); // 僅編碼路徑/查詢參數部分,勿編碼協議://
或用 `Uri.parse(rawUrl).buildUpon().build().toString()` 讓系統標準化。
head_img0.put("head_img", HealthMap.get("key", isContinue));
// 若 get 返回 null 或非 URL 字串,直接塞入廣告輪播會報 Bad URL
需加防禦:
String url = (String) HealthMap.get("key", false);
if (url != null && URLUtil.isValidUrl(url)) {
head_img0.put("head_img", url);
} else {
Log.w("Ad", "Invalid ad URL: " + url);
}
核心:**Bad URL 99% 是字串內容問題,而非 Volley 本身 Bug**。逐級印出 URL 字串即可定位。