安卓TV应用集成android-pdf-viewer依赖解析失败求助
依赖解析失败原因
com.github.* 前缀的开源依赖统一托管在JitPack仓库,你当前的Gradle配置里没有添加JitPack仓库,且已经废弃停服的jCenter不包含该版本的依赖,所以会出现解析失败报错。
你使用的Android Gradle插件7.2.1版本默认将依赖仓库的配置收拢到settings.gradle文件中,在项目级build.gradle中添加仓库不会生效,还会触发FAIL_ON_PROJECT_REPOS规则报错。
修复步骤
- 打开项目根目录下的
settings.gradle文件,在dependencyResolutionManagement.repositories代码块中添加JitPack仓库配置,删除你之前添加的jCenter配置(jCenter已停服,无实际作用还可能拖慢依赖拉取速度),修改后的完整配置如下:
pluginManagement { repositories { gradlePluginPortal() google() mavenCentral() } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven { url 'https://jitpack.io' } } } rootProject.name = "####" include ':app'
- 点击Sync Now同步Gradle配置,即可正常拉取
com.github.barteksc:android-pdf-viewer:3.2.0-beta.1依赖。 - 若后续运行时出现so库加载异常,可在模块级build.gradle的
defaultConfig块中添加ABI过滤,适配TV设备通用架构:
ndk { abiFilters 'armeabi-v7a', 'arm64-v8a' }
TV端PDF查看库适配说明
- 你当前选用的
android-pdf-viewer本身就适配TV场景:它基于原生Canvas渲染PDF,不依赖WebView,不存在TV端WebView碎片化导致的渲染异常问题,只需要自行重写按键事件,将遥控器上下左右/确认键映射为翻页、缩放操作即可,适配成本极低。 - 如果需要深度定制交互,可以选择
com.tom-roush:pdfbox-android,这是PDFBox的官方安卓移植版,纯Java实现无原生so依赖,你可以完全自主控制PDF的渲染逻辑、焦点逻辑,适合定制化要求高的TV应用。 - 不推荐使用基于WebView加载在线PDF预览、或者js渲染的PDF方案,TV端设备系统版本差异大,WebView兼容性差,很容易出现焦点丢失、渲染错乱、内存占用过高的问题。
内容的提问来源于stack exchange,提问作者Amartya
相关产品推荐
相关产品推荐

