什么是android.media.tv的依赖项

时间:2017-08-30 14:39:20

标签: java android gradle android-tv

我尝试将Android TV应用移动到Android工作室。当我尝试编译它时,我有一些导入错误。我无法找到可以添加到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:+'
}

4 个答案:

答案 0 :(得分:1)

您无法导入这些内容,因为它们具有@SystemApi注释。您可以查看this以获取TvContentRatingSystemInfo的源代码。我还检查了WatchedPrograms,它还有@SystemApi注释。我没有检查过其他三个。

您需要成为系统应用才能访问这些内容。如您所见[{3}},您需要在\system\文件夹中推送您的应用。您可以找到有关AOSP构建系统here的详细信息。

解决方案:android.jar更改为此here中的.jar可让您访问系统API。原因是您的标准android.jar没有系统API。因此,您需要从模拟器获取framework.jar(通过adb pull)并将其与core.jar结合使用,然后您可以拥有包含系统API的新android.jar(系统方法和类可用在模拟器的framework.jar中。

此外,您应该将apk推送到\system\priv-app\文件夹以访问某些系统API但我不知道为什么我可以访问系统API而不将我的apk推送到\system\priv-app\当我使用.jar时那个github帐号。

我觉得我写得不太清楚,但至少现在你对你所面对的事情有了更多的了解。

答案 1 :(得分:0)

featuresandroid.media.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

实施例,

com.android.tv

答案 2 :(得分:0)

在依赖项中使用它“com.android.support:support-media-compat:26.0.2”

并使用工具版“26.0.1”

编译SDK版本26。

答案 3 :(得分:0)

您可以在app level gradle中添加依赖项。

compile 'com.google.android.libraries.tv:companionlibrary:0.1'