Android 库项目生成版本高于使用它的项目

Android 库项目生成版本高于使用它的项目,android,project,Android,Project,我正在使用Android库项目。我已经将我的库项目构建目标设置为11,以使用api 11并具有向前兼容性,我正在检查min sdk版本,以便应用程序在os

我正在使用Android库项目。我已经将我的库项目构建目标设置为11,以使用api 11并具有向前兼容性,我正在检查min sdk版本,以便应用程序在os<11上运行时不会崩溃

我的其他项目的构建目标设置为8,所以我想知道,将库项目构建版本设置为高于构建目标较低的项目的版本是否正确

现在我还没有看到任何碰撞。只是想知道构建版本较高的库是否可以用于构建sdk版本低于库的项目中


提前感谢。:

不建议使用API级别高于应用程序的库。若你们引用了库中的任何API11-only特性,然后使用API8和你们的应用程序一起编译,那个么它就根本不应该编译。您的库代码中是否有API 11引用

见:

通常,库项目应该使用 与应用程序使用的相同或更低。如果 库项目使用的API级别高于 应用程序,应用程序项目将不会编译


通过在代码级别检查SDK版本(如android.os.Build.version.SDK_INT<11)这样的分支检查SDK版本可能是可行的,但不建议运行此操作:

平台版本必须低于或等于Android项目

库作为依赖应用程序项目的一部分进行编译,因此库项目中使用的API必须与用于编译应用程序项目的Android库版本兼容。通常,库项目应该使用与应用程序使用的API级别相同或更低的API级别。如果库项目使用的API级别高于应用程序的API级别,则应用程序项目将不会编译。例如,拥有一个使用Android1.5API(API级别3)并用于Android1.6(API级别4)或Android2.1(API级别7)项目的库是完全可以接受的


您可以使用支持比项目中更高版本的库。为此,在项目清单文件中添加
tools:overrideLibrary=“”
manifest元素使用sdk


在清单中,您只需添加:

<uses-sdk
      tools:overrideLibrary="<libraries packagename>"
    />


您的库代码中是否有API 11引用?是的,我只在alertDialog builder对象中使用过它,使其具有3.0及以上版本的全息主题。但是通过对sdk版本的检查,我能够在3.0更低版本和更高版本上构建代码。我只是想知道这个方法。正如我在上面的评论中提到的,我已经按照开发协会的建议使用了sdk检查,尽量避免使用它。有没有办法做到这一点?我的库使用API 11为运行在>=3.0上的应用程序设置全息主题,并为运行在<3.0上的应用程序设置对话框主题。我不想将我的应用程序构建目标从8更改为11,因为它对应用程序的项目要求,同时希望为3.0及更高版本设置全息主题,所以将构建目标更改为11,但避免了该怎么做那个请帮助,感谢我仅在alertDialog builder对象中使用它,以使3.0及以上版本具有全息主题。@devilcol,我在我的项目中也使用代码级SDK版本检查(但不是从android库项目),正如我所说,这是可行的,但你需要仔细维护代码中的条件分支,并自行负责在不同的目标Android系统上正确测试你的应用程序。如果库项目使用的API级别高于应用程序的API级别,我不同意这句话,应用程序项目将不会编译。因为我的库混合使用API级别16和17,而主应用程序项目在API级别12时仍然可以编译。注意:我的清单已删除
targetSDKVersion
。它只显示12的Minsdk版本。@yorkw如果您使用的是需要更高SDK版本的库,如何使应用程序编译?我获取错误清单合并失败。。。我想检查代码中的SDK版本,但此错误阻止我的应用程序编译。。。