我尝试将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:+'
}
答案 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)
features
和android.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'