最近應人客的要求,小改界面(layout file),可是build卻出現了「android string types not allowed (at 'background' with value ' ').」而且是在第二行.....
可是明明在xml中第2行也不是background的設定啊...
------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:orientation="horizontal">
....
.....
------------------------------------------------------
到底遇到了什麼靈異事件了!? (就算把上述的background行拿掉,re build還是一樣的錯誤訊息)
答案是.....錯誤訊息的「行」是xml reader read 進去時以xml節點去算的,第一行是<?xml versin.....?>
而其他的元素,就算在第二行,如同意大利線條一整條吃進去,,所以在其中任意子節點的錯,都算在第2行裡
所以,就算是把最開頭的LinearLayout裡的background行刪去,只要整個xml檔其他地方有錯,都是出現「第二行出錯」的訊息 (就算是在layout designer看來都對的情況下)
但,好歹知道是background屬性錯了,那就一個一個background屬性去找就對了
好,最有可能是不小心改到的background值.
------------------------------------------
<ImageButton
android:id="@+id/xxxxxxxx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:background=""
/>
----------------------------------
少年仔,background沒咧安呢用的,要嘛就不寫,要不就用"@null" 就是了
(但,如果你有 android:src="@drawable/xxxx" 屬性,卻想設定他去背--支援透明的話,就可以設定「android:background="#00000000"」了)
總之,儘信 IDE不如無IDE啊. Layout designer看到正常的東西,未必就是正確的啊
一起加油囉