編輯:關於Android編程
今天有一個Android新手使用strings.xml進行格式化的時候報了占位符錯誤, Multiple substitutions specified in non-positional format; did you mean to add the formatted=”false” attribute? ,問我該如何解決?
具體錯誤描述如下所示:
D:\Code_For_Android_Studio\MyGame2048\app\build\intermediates\res\merged\debug\values\values.xml Error:(16) Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute? Error:(16) Unexpected end tag string Error:Execution failed for task ':app:processDebugResources'. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'F:\AndroidStudio\sdk\build-tools\23.0.2\aapt.exe'' finished with non-zero exit value 1 Information:BUILD FAILED Information:Total time: 8.228 secs
我看了下他的strings.xml的源代碼,報錯的那一行代碼是這樣寫的:
游戲%s,作者:%s
檢查後發現是string.xml中的 %s 導致編譯失敗,應該把%s 改成%1$s的形式。
將
游戲%s,作者:%s
改成
游戲%1$s,作者:%2$s
然後重新編譯即可成功編譯。
在上一篇博文《Android之——殺死用戶選中的進程(釋放進程占用的空間)》一文中,向大家介紹了如何殺死用戶選中的進程,但是,遺留了一個問題,那就
我們知道在Android系統中,我們執行完耗時操作都要另外開啟子線程來執行,執行完線程以後線程會自動銷毀。想象一下如果我們在項目中經常要執行耗時操作,如果經常要開啟線程,
通過布局編輯器創建UI在你Android Studio的布局編輯器中,你可以快速地通過將控件拖入視覺編輯器來代替手寫XML來快速地創建布局。編輯器可以預覽布局在不同版本和
首先從字面意思理解兩個詞onTouchEvent:觸發觸摸事件onInterceptTouchEvent:觸發攔截觸摸事件通過查看源代碼及類繼承關系onIntercept