2021年8月7日 星期六

for xamarin android :「android string types not allowed (at 'background' with value ' '). 」發生在第2行

 最近應人客的要求,小改界面(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看到正常的東西,未必就是正確的啊



一起加油囉



沒有留言:

張貼留言