如何在Android上的React Native中包含和读取源地图文件

时间:2018-02-21 12:10:17

标签: android react-native gradle android-gradle react-native-android

我正在尝试在React Native应用程序的Gradle构建过程中生成源映射,并在应用程序中读取源映射文件。

我以此项目为起点:https://github.com/philipshurpik/react-native-source-maps

我没有成功地将它包含在内,所以我试图修改它的部分内容。

app/gradle.build我添加了: project.ext.react = [ extraPackagerArgs: ["--sourcemap-output", "$buildDir/intermediates/assets/release/index.map"] ]

确实当我运行发布版本时,我在index.map下看到了文件android/app/build/intermediates/assets/release,但是当我将APK部署到设备或模拟器时,我无法在任何地方看到此文件Android的文件系统。就此而言,我也看不到捆绑文件或android/app/src/main/assets中的任何文件,我在构建后确实在android/app/build/intermediates/assets/release中看到了。

应用程序代码使用https://github.com/itinance/react-native-fs来读取文件。这是我首先检查文件是否存在的方式: const fileExists = await RNFS.existsAssets(`${RNFS.DocumentDirectoryPath}/index.map`) 那里的文件不存在。 RNFS.DocumentDirectoryPath返回/data/user/0/mypackagename/files,当我检查时(使用具有超级用户访问权限的adb shell),这是空的。

我错过了什么?如何将源映射文件提供给应用程序可供读取的位置?

1 个答案:

答案 0 :(得分:1)

原来gradle.build部分很好,为了阅读源地图文件,我只需要使用文件名,如下所示:RNFS.existsAssets('index.map')