先说结论:错误的原因是Android构建组件间版本冲突导致的,想直接看解决方案可以直接跳到最后。
Android发展至今,为了优化开发工作,诞生了多个用于支持开发工作的组件(这里只提eclipse用到的部分):
ADT:eclipse下帮助Android开发的插件,用于管理/升级Android组件。
SDK Tools:包括Android的完整开发和调试工具集,r8版本之后依赖Platform-tools。
Platform-tools:Android调试工具包,提供了很多好用的工具,如:adb、fastboot等等;安装路径是<sdk path>/platform-tools/。
build-tools:用于生成Android应用程序的组件,安装路径是<sdk path>/build-tools/。
经过时间积累,各个组件已经发展出非常多的版本,而部分组件之间相互依赖,导致在不了解版本依赖的情况下,就有可能出现,由于某个组件的升级而导致无法生成apk的问题。
再加上Android是基于java开发的,因为jdk的版本也会对各个组件产生影响。
虽说只要将Android与各组件以及jdk都升级到最新版本,应该就能解决问题,但实际开发工作中无法自由升级工具的情况也时有发生。因此只有理清各组件间的版本依赖关系,以及Android版本与jdk版本之间的关系才能从根本上避免再次出现类似问题。
以下是根据官网文档整理的Android版本与各组件版本之间的依赖关系: