我有一個非常惱人的bug已經悄悄進入我的android應用程序,我找不到原因(儘管可能是因爲我升級到SDK 23)。Android Studio調試選項
我動態引用了一系列的ImageView元素,並用位圖填充的ImageView:
ImageView img = (ImageView) activity.findViewById(context.getResources().getIdentifier(result.getView(), "id", context.getString(R.string.packagename)));
img.setImageBitmap(bitmap);
所有ImageViews均正確,現在填充只是一個圖像不填充(其他的都)
我懷疑圖像正在填充,但隨後被覆蓋,隱藏,發回或其他東西。
我曾嘗試在Android Studio中的調試器,似乎證實了ImageView的被正確引用,並有一個形象的「位圖」,但似乎什麼我不能做的是找到,如果它隨後被更改
問題 有沒有一種方法來設置調試「陷阱」捕捉每當資源ID被訪問(即我想知道如果有改變我的R.id.inv_image
升級到SDK 23是它的工作之前,你試圖設置不同的位圖,但不能動態例如一個靜態的位圖,你輸入:
通過減少的ImageView的高度固定的呢?你可以放一個Log.w()並記錄正在加載的位圖來查看發生了什麼。編輯:你說所有的位圖加載好除了一..這是在一個循環?你確定循環的執行次數與你的位圖一樣多嗎? –
嘗試斷點我會告訴你當前正在設置的值 –
我不清楚調試,但你可以嘗試記錄;你在哪裏設置圖像視圖的位圖添加一個顯示被訪問ID的日誌行,並查看輸出日誌,如果你看到一行重複(具有相同的ID),那麼這就是你需要挖掘(建議)loga行包含這些參數'context.getResources()。getIdentifier(result.getView(),「id」,context.getString(R.string.packagename))'將其包裝起來,所有日誌都不應該顯示相同的ID兩次。 – Yazan