假设我已按如下方式设置Android应用程序的AndroidManifest.xml:
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17"/>
我感兴趣的是如何扫描我的源代码以调用不属于我指定的minimimun SDK版本的Android API,在此示例中是API级别8.这样,我可以检查每个可疑的调用确保它使用反射测试正确包装,或其他一些向后兼容性的保证,以便它不会使旧设备崩溃。理想情况下,我可以将此调用标记为“安全”,以便在后续扫描时不会触发。
例如,假设开发人员在不知情的情况下检查了一些使用DownloadManager
的代码,这是一个API等级为9及更高级别的API。由于上面的'uses-sdk'语句,MyApp将在Android 2.2(API Level 8)设备上构建,安装和运行。但是,一旦代码路径在该2.2设备上调用DownloadManager
方法,用户将遇到未解决的虚拟方法异常(崩溃)。这就是我要避免的。
理想情况下,在构建期间,我可以从命令行执行扫描这些可能不兼容的API;并且,它可以处理对android:minSdkVersion的更改,而无需进行太多的重组。
答案 0 :(得分:1)
我很难找到这个,所以我会回答清楚(即使这是一个2岁的问题)。
在Eclipse中,右键单击项目,单击“Android工具”&gt; “运行lint:检查常见错误”。
这将为您提供lint可以在您的代码中找到的所有奇怪的列表,包括您在清单中定义的minSdkVersion的不兼容性(可以在列出“正确性”类别。