制作Android二维码时产生的错误总结


现在很多应用都需要二维码,因此,在搜集资料中发现了发现一个以Apache开源的 ZXing项目。而在学习中也发现了一些错误。

(Zxing是Google提供的关于条码(一维码、二维码)的解析工具,提供了一系列条形码以及二维码的生成与解析的方法);

第一个,

最开始我学习的是1.6的ZXing版本,结果接触到了一个错误,编译一下项目在values目录下的strings的xml文件里面有个

<string name="preferences_custom_product_search_summary">Use %s as a placeholder for the product ID, and %f for format</string>

标签错误,会发现报错,“ Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?”之类的。打开raw 下的Values 发现错误是在一个<String>上。这里把 “preferences_custom_product_search_summary” 里的  %s  %f  全部都改成  %1$s  %1$f(因为我们用不到多国语言,建议只保留默认的Value ,其他全部删除)。

原因:由于新的SDK采用了新版本的aapt(Android项目编译器),这个版本的aapt编译起来会比老版本更加的严格,然后在Android最新的开发文档的描述String的部分,已经说明如何去设置 %s 等符号

“使用的String.Format(字符串,对象...),如果你需要格式化字符串,然后你就可以这样做把你的格式参数中的字符串资源。例如,用下面的资源:

<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>

在这个例子中,格式字符串有两个参数:%1 $ S是一个字符串,%2 $ d是一个十进制数。您可以格式化字符串,还要争拗从您的应用程序...“

经过以上步骤后项目应该就可以运行了。

不过之后,在我下了2.1之后,ZXing的作者可能已经意识到这个问题,所以在随后的2.1ZXing版本里面没有这个问题了。

详细请看:

不过,1.6很多地方没有随后的2.1好,2.1优化升级了许多地方。

  • 1
  • 2
  • 下一页

相关内容