【发布时间】:2012-10-08 15:19:24
【问题描述】:
我需要在 Google Play 商店中使用不同的 minSDKVersion(用于设备过滤目的),而不是用于私人 Beta 版测试。我尝试了以下方法:
AndroidManifest.xml 包含以下内容:
<manifest …>
[…]
<uses-sdk android:minSdkVersion="@integer/minSdkVersion" android:targetSdkVersion="15"/>
[…]
</manifest>
res/values/config.xml由maven生成,包含以下内容:
<resources>
<integer name="minSdkVersion">8</integer>
</resources>
这很好用,除了 aapt dump badging 抱怨:
ERROR getting 'android:minSdkVersion' attribute: attribute is not a string value
不幸的是,aapt dump 不会转储其余部分。所以除了这个错误我没有任何输出:-(
当我将 minSdkVersion 引用更改为这样的字符串引用时:
AndroidManifest.xml 包含以下内容:
<manifest …>
[…]
<uses-sdk android:minSdkVersion="@string/minSdkVersion" android:targetSdkVersion="15"/>
[…]
</manifest>
res/values/config.xml 由 maven 生成,包含以下内容: 8
有了这个我无法安装应用程序,因为不知何故我的 API 级别 16 (Jelly Bean) 的设备不允许 APKs
sdkVersion:'8'
(根据aapt dump badging)被安装。错误是:INSTALL_FAILED_OLDER_SDK
在创建 APK 时,字符串引用似乎被误解了。
如何从资源文件中引用 android:minSdkVersion 并使用 aapt 对其进行调试?
aapt 版本是 Android Tools Rev. 20 的 0.2。
【问题讨论】:
标签: android aapt android-sdk-tools