Unity3D中 Android插件findviewbyid返回null的解決辦法

       最近在給Unity3D接入各個Android運營平臺的插件,其中需要自己做一個簡單的WebView用於顯示遊戲內廣告等,在製作的過程中碰到了一個很蹊蹺的問題。

       按照正常的工程來做,發現findViewById返回了一個null 導致了空指針異常。無論是直接用Unity編譯apk還是用Unity導出Android工程,都會出現該問題。經過各種查找,最終找到了問題的原因。

       問題的原因主要在於,在我們將自己的android工程打成jar插件時,原來的R.id.xxxxx已經被轉換成相應的數字id編譯進了jar包,而Unity3D在導出工程或是apk的時候,會對所有資源進行重新的id編譯,這就導致我們jar中的舊id是無法獲取到相應對象。解決辦法如下:

		//this.wv=(WebView)findViewById(R.id.ifree_brow_webview);
    int webviewID = getResources().getIdentifier("ifree_brow_webview", "id", getPackageName());
		this.wv = (WebView)findViewById(webviewID);
		

 這樣獲得ID就可以保證是正確的ID了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章