所有 React Native 编译的类文件在哪里?

Posted

技术标签:

【中文标题】所有 React Native 编译的类文件在哪里?【英文标题】:Where are all the React Native compiled class files? 【发布时间】:2021-02-16 18:02:49 【问题描述】:

我有一个大约 3 或 4 个屏幕的 React Native 项目。

我反编译生成的android classes.dex文件后,只发现了两个Java类。如果 React Native 将您的组件编译为原生 Android 类是正确的,那么这些屏幕的所有 Android 类在哪里?

请注意:APK 已正确捆绑,因为它在 Android 设备上运行良好。

我还运行了以下命令来创建 APK:

react-native bundle --platform android --dev false --entry-file index.js \
            --bundle-output android/app/src/main/assets/index.android.bundle \
            --assets-dest android/app/src/main/res/

谢谢!

【问题讨论】:

我认为 React Native 不会将你的组件编译为原生 Android 类... 这里有类似的问题:Does React Native compile javascript into Java for Android? 嗨。谢谢!这正是我想要的。 你能不能给我答案***.com/a/65862210/8079868 【参考方案1】:

React Native 不会将您的组件编译为原生 Android 类。

这里有一个类似的问题:

Does React Native compile JavaScript into Java for Android?

【讨论】:

【参考方案2】:

首先你要安装APKTOOL,然后你要解压apk,然后你要反编译下面的js代码

安装apktool

适用于 Macbook

brew install apktool

适用于 Linux

apt-get install -y apktool

对于窗口

您可以阅读窗口DOCS的安装步骤

用法

安装apktool后,在终端上运行以下命令解压缩apk文件:

apktool  d /pathOfApkFile.apk

之后你会在pathOfApkFile/assets/index.android.bundle获得index.android.bundle文件

你可以使用react-native-decompiler 来反编译index.android.bundle 文件

反编译index.android.bundle文件

你可以通过运行这个命令来反编译index.android.bundle

npx react-native-decompiler -i ./index.android.bundle -o ./output

之后会在./output目录下得到JS反编译文件

【讨论】:

以上是关于所有 React Native 编译的类文件在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

react native 的js 文件从哪里获取

React Native 中的 Xcode 项目在哪里?

为 React Native App 保存的静态图像/图片在哪里?

在 Xcode 中打开我的 React Native 项目,我的代码在哪里?

react native 图片加载失败

在 react-native 中打开预填充的 SQLite 数据库,将数据库放在哪里?