關於GooglePlay上傳錯誤:android:icon attribute attribute is not a string value

關於GooglePlay上傳錯誤:android:icon attribute attribute is not a string value

今天上傳應用到GooglePlay提示錯誤如下:


相信這個問題很多人都可能遇到過。遇到這種問題,首先本能的藉助Google來找尋答案,果不其然還是有不少朋友遇到過這種問題。首先我反覆的查看了下面這個帖子裏面的內容,哈哈,問題竟然是aapt.ext工具可能存在有Bug,頓時三觀盡毀啊!點擊打開鏈接

問題找到了,該如何解決了?我試着升級Android SDK重新編譯,很遺憾問題同樣存在。接下來我開始從這個錯誤提示入手,‘android:icon attribute attribute is not a string value‘ 難道是程序Logo有問題?根據網上的各種資料,我將drawable-ldpi,drawable-mdpi,drawable-hdpi,drawable-xhdpi以及默認drawable文件夾下面都存放了一份相應尺寸的應用圖標。然而,上傳後還是提示同樣的錯誤~~~想來想去真的是沒有什麼好辦法了~~

沒辦法現在只有不停的測試-上傳來發現問題。但是上傳一次GooglePlay太費時間,上面提示的錯誤不是由aapt.exe工具報告的嗎?好傢伙,找找其使用的指令直接用來測試編譯好的APK應用,省事高效。操作方法:Windows環境下進入cmd,進入到你安裝的SDK相應目錄下面執行如下指令:

aapt dump badging Appname.apk

Appname.apk是你的APK文件全名,注意加後綴格式哦。如果能夠順利的通過則說明這個問題得到了解決,在控制檯中會列出關於程序資源的詳細信息;否則會提示相應錯誤信息如最開始所示。

再次回到錯誤提示中,靈機一動,上面不是有資源出錯的位置索引:’0x7f080000'嗎?我試着在資源文件R.java中搜索它,好傢伙原來是程序的名稱的String資源,根本與android:icon沒有半毛錢關係~哈哈。下面是AndroidManifest.xml中關於應用的相關配置:

        android:allowBackup="true"
        android:allowClearUserData="false"
        android:hardwareAccelerated="true"
        android:icon="@drawable/app_logo"
        android:label="@String/app_name"
        android:largeHeap="true"
問題找到了就好辦了,解決方法如下:

一:將應用名稱進行硬編碼寫死,

android:label="your_app_name"
二:原來我的程序的所有語言資源成了中文和英文,默認的value文件夾中沒有相應的文件。添加一個默認的文件幷包含app_name的字段就OK。

再次編譯好新的APK用aapt解析一下,OK沒有報錯啦!看來開發者不可過度依賴某些工具的使用哦,如果工具本身就可能有問題那可是會浪費你不少寶貴時間來調試的!




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