MRM*_*MRM 7 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;
Run Code Online (Sandbox Code Playgroud)
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:+'
}
Run Code Online (Sandbox Code Playgroud)
您无法导入它们,因为它们有@SystemApi
注释。你可以检查一下这个的源代码TvContentRatingSystemInfo
。我也查了一下WatchedPrograms
,也有@SystemApi
注释。其他三个我没有检查过。
您需要成为系统应用程序才能访问这些。正如您在此处看到的,您需要将应用程序推送到文件夹中\system\
。您可以在此处找到有关 AOSP 构建系统的详细信息。
解决方案:android.jar
将您的.jar
更改为此github中的文件应该可以让您访问系统 API。原因是你的标准android.jar
没有系统API。因此,您需要从模拟器获取framework.jar
(by adb pull
) 并将其与core.jar
然后您可以拥有包含系统 API 的 new (系统方法和类在模拟器android.jar
中可用)。framework.jar
此外,您应该将您的 apk 推送到\system\priv-app\
文件夹以访问某些系统 API,但我不知道为什么当\system\priv-app\
我从该 github 帐户使用 .jar 时,我可以访问系统 API 而无需将我的 apk 推送到。
我觉得我写得不太清楚,但至少现在你对你所面临的事情有了更多的理解。
归档时间: |
|
查看次数: |
795 次 |
最近记录: |