android.media.tv 的依赖项是啥
Posted
技术标签:
【中文标题】android.media.tv 的依赖项是啥【英文标题】:what is a dependency for android.media.tvandroid.media.tv 的依赖项是什么 【发布时间】:2018-02-08 08:10:01 【问题描述】:我尝试将 android TV 应用移至 Android Studio。当我尝试编译它时,我遇到了一些导入错误。我找不到可以添加到 build.gradle 来解决这些问题的依赖项。进口清单是:
import android.media.tv.TvContentRatingSystemInfo;
import android.media.tv.TvContract.WatchedPrograms;
import com.android.tv.tuner.data.nano.Track.AtscCaptionTrack;
import com.android.tv.tuner.data.nano.Track.AtscAudioTrack;
import com.android.tv.tuner.data.nano.Channel;
build.gradle 是:
apply plugin: 'com.android.application'
android
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig
applicationId "com.android.tv"
minSdkVersion 23
targetSdkVersion 23
versionCode 1
versionName "1.0"
ndk
moduleName "libtunertvinput_jni"
sourceSets
main
res.srcDirs = ['src/main/res', 'src/main/usbtuner-res']
jni.srcDirs = []
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
debug
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
dependencies
compile fileTree(dir: 'libs', include: ['*.jar'])
compile files('libs/exoplayer.jar')
compile project(':common')
compile 'com.android.support:palette-v7:+'
compile 'com.android.support:support-v4:+'
compile 'com.android.support:support-annotations:+'
【问题讨论】:
你能在 github 上发布一个具有这种行为的简单项目吗? 【参考方案1】:您无法导入这些,因为它们有 @SystemApi
注释。您可以查看this 获取TvContentRatingSystemInfo
的源代码。我还检查了WatchedPrograms
,它也有@SystemApi
注释。其他三个我没有检查。
您需要成为系统应用才能访问这些。如您所见here,您需要将您的应用推送到\system\
文件夹中。您可以找到有关 AOSP 构建系统的详细信息here。
解决方案:
将您的android.jar
更改为github 中的.jar 应该使您能够访问系统API。原因是您的标准 android.jar
没有系统 API。因此,您需要从模拟器中获取framework.jar
(通过adb pull
)并将其与core.jar
结合,然后您可以拥有包含系统API 的新android.jar
(系统方法和类在模拟器中的framework.jar
中可用) .
此外,您应该将您的 apk 推送到 \system\priv-app\
文件夹以访问某些系统 API,但我不知道为什么当我使用该 github 帐户中的 .jar 时,我可以在不将我的 apk 推送到 \system\priv-app\
的情况下访问系统 API。
我觉得我写的不是很清楚,但至少现在你对你所面临的事情有了更多的了解。
【讨论】:
【参考方案2】:android.media.tv
和 com.android.tv
是 Android SDK 的一部分。所以你不需要在 gradle.build 文件中包含任何额外的库。
只要确保:
Update your SDK tools to version 24.0.0 or higher
和
Update your SDK with Android 5.0 (API 21) or higher
例子,
android
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig
applicationId "com.example.tvapp"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
【讨论】:
android 平台版本是:API 26 android SDK 工具:26.0.02 但仍然无法正常工作 您是否尝试过文件 > 使缓存无效/重新启动?此外,发布您的 build.gradle 文件应用程序和模块。 @MRM【参考方案3】:在您的依赖项“com.android.support:support-media-compat:26.0.2”中使用它
并且还使用工具版本“26.0.1”
编译的 SDK 版本 26。
【讨论】:
【参考方案4】:您可以在应用级别的 gradle 中添加依赖项。
compile 'com.google.android.libraries.tv:companionlibrary:0.1'
【讨论】:
以上是关于android.media.tv 的依赖项是啥的主要内容,如果未能解决你的问题,请参考以下文章