【发布时间】:2016-06-08 17:21:18
【问题描述】:
我查看了 Google UniversalMusic Player 代码示例,用于制作具有通用代码库的通用 APK,以支持从手机到电视的所有设备类型,如下所示: https://github.com/googlesamples/android-UniversalMusicPlayer
我的要求是有一个 APK 在移动设备和电视上支持不同的最低 API 版本 - 移动设备的最低 API-15 和电视的最低 API-21(因为 Android TV 仅从 API-21 开始)
我怎样才能以最少的代码重复来做到这一点(即,如果制作单独的移动和电视模块,那么我必须在两个模块中复制代码)? 谢谢!
【问题讨论】:
-
嗯,最简单的解决方案是拥有一个将
minSdkVersion设置为 15 的 APK。我不知道让您的生活变得更加复杂有什么好处,必须拥有两个单独的 APK 文件两个单独的minSdkVersion值。说明此“要求”的人应详细解释为什么存在此“要求”,因为这可能会对解决方案产生影响。 -
我首先尝试过 - 但出现错误,因为leanback API 仅适用于 API-21 及更高版本...在 SO...上找到此线程...stackoverflow.com/questions/28075533/…
-
“但出现错误,因为leanback API 仅适用于 API-21 及更高版本”——这取决于 API。一些从 API 级别 17 开始的工作。除此之外,无论如何,您将拥有单独的启动器活动(一个用于移动设备,一个用于电视)。只要您没有移动设备尝试启动电视活动,就不会有任何问题。这不是
minSdkVersion的问题;这是一个确保为用户提供正确的用户界面的问题。 -
是的,我尝试将 minSDK 设置为 API-17 进行构建,因为 v17 可以使用leanback。所以可能会满足于 17 而不是 15
标签: android build android-gradle-plugin apk android-tv