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.tvcom.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 的依赖项是啥的主要内容,如果未能解决你的问题,请参考以下文章

Twilio 的 SMS 验证 gradle 依赖项是啥?

定位经度和纬度的 gradle 编译依赖项是啥?

使用 hibernate、hibernate 注释和 ehcache 的 Maven 依赖项是啥?

Maven 中未使用/未声明的依赖项是啥?拿他们怎么办?

TomEE1.7.x 推荐的 JSF 依赖项是啥?

Excel IFERROR 的 R 等效项是啥?