我的android项目min sdk级别是16.我想把它变成即时应用程序,但我需要保持min sdk级别但是即时应用程序支持min 23.我试图为可安装和即时应用程序设置不同的api级别同样的项目,并试图覆盖它们,但我无法做到。那么有没有办法在可安装应用程序和具有不同最小sdk级别的即时应用程序的同一项目中工作?
答案 0 :(得分:1)
另一种方法是让即时应用APK拥有所需的 minSdkVersion
:
App(com.android.instant.application)清单:
<uses-sdk tools:overrideLibrary="com.example.feature"/>
App(com.android.instant.application)gradle
:
minSdkVersion rootProject.minSdk
功能(com.android.instant.feature)gradle
:
minSdkVersion rootProject.minSdkInstant
这让我可以构建
minSdk
minSdkInstant
唯一推荐的方法是使用flavors。
除tools:overrideLibrary
方法外,没有其他方法可以做到这一点。
APK是从 功能插件 生成的,而不是来自 即时应用插件 。
你可以查看android-instant-apps/configuration-apks/features/build.gradle 这个SO Question
答案 1 :(得分:0)
我能够做到这一点的唯一方法是使用不同的产品口味。例如:
instant {
dimension "delivery"
minSdkVersion 23
}
installed {
dimension "delivery"
}
请注意,您可以定义多个维度(例如我有flavorDimensions "app_type", "delivery"
)
答案 2 :(得分:0)
您还可以参考this AIA minSdkVersion bug查询有关查询的详细信息,并提供使用口味的推荐方法 引用链接上分享的详细信息:
另一种方法是让即时应用APK具有所需的功能 minSdkVersion就是这样:
App(com.android.application)清单:
App(com.android.application)gradle:minSdkVersion rootProject.minSdk
功能(com.android.feature)gradle:minSdkVersion rootProject.minSdkInstant
这让我可以建立 - 使用minSdk安装应用程序 - 使用minSdkInstant的即时应用APK [/ p>
另请参阅此link以获取有关风味维度的信息。