最近接手了一個bug,是上傳應用商店的時候,部分應用商店會調用aapt工具獲取apk信息,在獲取信息時會出現如下相似錯誤。android
package: name='com.xxx.activity' versionCode='1' versionName='1.0'微信
sdkVersion:'8'app
targetSdkVersion:'21'工具
application-label:'鎺屼腑搴嗛槼'ui
application-icon-120:'res/drawable-ldpi-v4/ic_launcher.png'編碼
application-icon-160:'res/drawable-mdpi-v4/ic_launcher.png'spa
application-icon-240:'res/drawable-hdpi-v4/ic_launcher.png'.net
application-icon-320:'res/drawable-xhdpi-v4/ic_launcher.png'debug
application-icon-480:'res/drawable-xxhdpi-v4/ic_launcher.png'code
application: label='鎺屼腑搴嗛槼' icon='res/drawable-mdpi-v4/ic_launcher.png'
application-debuggable
launchable-activity: name='com.xxx.activity.xxxActivity' label='' ico
n=''
ERROR getting 'android:name' attribute: attribute is not a string value
這個錯誤並不長出現,只有一些國外的解決文章,仍是花了一些時間才解決,這裏記錄一下了,若是少年們出現了相似的問題也但是試一下下面的解決方案。
首先咱們若是出現上傳問題之後能夠使用aapt工具檢測一下,工具在 sdk build-tools 文件夾下,用 cmd 的方式打開。
命令是 aapt dump badging xx.apk xx爲應用名稱,意思是獲取apk相關信息。當程序出現問題就會出現和應用商店相同的提示信息。
ERROR getting 'android:name' attribute: attribute is not a string value
在我接手的項目裏面出現這個問題的緣由是,AndroidManiFest 中 activity 的 android:name= 用了@string的模式,這種相關的使用方式致使 aapt 沒法識別。
修改方法就是把 @string 中的字符串複製到 android:name 中,而後使用 aapt 工具跑一下就能夠解決問題了。若是從新打包的應用上傳的應用商店時還出現錯誤提示,能夠嘗試刷新頁面。
<!-- 微信回調activity --> <activity android:name="@string/weixin_callback" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
網上有國外的解決方案是吧 AndroidMainFest中全部 @string 都是用硬編碼的方式寫到文件裏,這裏其實並不須要的,只要沒有提示 ERROR getting 'android:label' attribute: attribute is not a string value 或者是其餘的相似提示,都只要修改 activity 裏 android:name 就能夠了。