android.media.tv 的依赖项是什么
what is a dependency for android.media.tv
我尝试将 android 电视应用移至 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:+'
}
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"
}
}
在你的依赖项中使用它"com.android.support:support-media-compat:26.0.2"
并使用工具版本“26.0.1”
编译SDK版本26.
您可以在应用级别添加依赖项gradle。
compile 'com.google.android.libraries.tv:companionlibrary:0.1'
您不能导入它们,因为它们有 @SystemApi
注释。 TvContentRatingSystemInfo
的源代码可以查看this。我还检查了 WatchedPrograms
并且它也有 @SystemApi
注释。其他三个我没查过
您需要成为系统应用程序才能访问这些。如您所见 here, you need to push your app in the the \system\
folder. You can find detailed information about AOSP build system 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 但我不知道为什么我可以访问系统 API 而无需将我的 apk 推送到 \system\priv-app\
当我从那个 github 帐户使用 .jar 时。
我感觉我写的不是很清楚,但至少现在你对你所面对的事情有了更多的理解。
我尝试将 android 电视应用移至 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:+'
}
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"
}
}
在你的依赖项中使用它"com.android.support:support-media-compat:26.0.2"
并使用工具版本“26.0.1”
编译SDK版本26.
您可以在应用级别添加依赖项gradle。
compile 'com.google.android.libraries.tv:companionlibrary:0.1'
您不能导入它们,因为它们有 @SystemApi
注释。 TvContentRatingSystemInfo
的源代码可以查看this。我还检查了 WatchedPrograms
并且它也有 @SystemApi
注释。其他三个我没查过
您需要成为系统应用程序才能访问这些。如您所见 here, you need to push your app in the the \system\
folder. You can find detailed information about AOSP build system 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 但我不知道为什么我可以访问系统 API 而无需将我的 apk 推送到 \system\priv-app\
当我从那个 github 帐户使用 .jar 时。
我感觉我写的不是很清楚,但至少现在你对你所面对的事情有了更多的理解。