如何将库的本地副本添加和编译到 Android React Native 模块中?
Posted
技术标签:
【中文标题】如何将库的本地副本添加和编译到 Android React Native 模块中?【英文标题】:How can I add and compile local copy of a library into Android React Native module? 【发布时间】:2019-03-15 13:15:52 【问题描述】:如何添加到本机模块、外部库源代码。 在这种情况下,我想将 ExoPlayer 的本地副本添加到 react-native-video 模块。 我想“git clone” ExoPlayer 的原始来源 在 react-native-video/android-exoplayer 里面,对它进行一些修改并测试它。 目前/react-native-video/android-exoplayer/build.gradle的依赖有:
dependencies
//noinspection GradleDynamicVersion
provided "com.facebook.react:react-native:$safeExtGet('reactNativeVersion', '+')"
compile 'com.google.android.exoplayer:exoplayer:2.7.3'
compile('com.google.android.exoplayer:extension-okhttp:2.7.3')
exclude group: 'com.squareup.okhttp3', module: 'okhttp'
compile 'com.squareup.okhttp3:okhttp:3.9.1'
当前文件结构:
构建
build.gradle
ExoPlayer
/src
这个目录“ExoPlayer”是我用“git clone”得到的,想用它来代替
compile 'com.google.android.exoplayer:exoplayer:2.7.3'
【问题讨论】:
【参考方案1】:我找到了解决办法:
在根项目 settings.gradle 应该添加这个:
gradle.ext.exoplayerRoot = '../node_modules/react-native-video/android-exoplayer/ExoPlayer-r2.7.3'
gradle.ext.exoplayerModulePrefix = 'exoplayer-'
apply from: new File(gradle.ext.exoplayerRoot, 'core_settings.gradle')
在 react-native-video/android-exoplayer/build.gradle dependencies 部分添加:
implementation project(':exoplayer-library-core')
implementation project(':exoplayer-library-hls')
implementation project(':exoplayer-library-smoothstreaming')
implementation project(':exoplayer-library-dash')
implementation project(':exoplayer-library-ui')
implementation project(':exoplayer-extension-okhttp')
并删除所有以“编译”开头的行
【讨论】:
以上是关于如何将库的本地副本添加和编译到 Android React Native 模块中?的主要内容,如果未能解决你的问题,请参考以下文章