Lir*_*dav 1 java-native-interface android android-ndk react-native
Android 上的 React Native 有一些 C/C++ 代码可以编译为 .so 文件。我如何构建这些 .so 文件?我认为这与https://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/jni/Application.mk有关。
我尝试创建一个新的 React Native 项目并从项目根运行以下命令:
NDK_PROJECT_PATH=node_modules/react-native/ReactAndroid/src/main $ANDROID_HOME/ndk-bundle/ndk-build
Run Code Online (Sandbox Code Playgroud)
但我收到一个错误:
Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: Android.mk
Run Code Online (Sandbox Code Playgroud)
更新:有关更多官方说明,您可以按照 React Native 文档中的步骤从源代码构建。从源代码构建将运行buildReactNdkLib Gradle 任务来构建这些 .so 文件。
我弄清楚了如何生成这些 .so 文件:
buildReactNdkLib任务。我捕获了它运行的命令,在我的例子中是:
~/Library/Android/sdk/ndk-bundle/ndk-build NDK_PROJECT_PATH=null NDK_APPLICATION_MK=~/.../react-native/ReactAndroid/src/main/jni/Application.mk NDK_OUT=~/.../react-native/ReactAndroid/build/tmp/buildReactNdkLib NDK_LIBS_OUT=~/.../react-native/ReactAndroid/build/react-ndk/all THIRD_PARTY_NDK_DIR=~/.../react-native/ReactAndroid/build/third-party-ndk REACT_COMMON_DIR=~/.../react-native/ReactAndroid/../ReactCommon -C ~/.../react-native/ReactAndroid/src/main/jni/react/jni --jobs 4
Run Code Online (Sandbox Code Playgroud)~/.../react-native将上面的命令替换为react-native 存储库的路径。
Android NDK: Module reactnativejni depends on undefined modules: fbjni和 的错误~/Library/Android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-g++: Command not found。为了解决这个问题,我必须切换到旧版本的 NDK:
~/Library/Android/sdk/ndk-bundle/ndk-build将上面命令中的路径更改为提取的文件夹的ndk-build文件。react-native/ReactAndroid/build/react-ndk/all.| 归档时间: |
|
| 查看次数: |
2095 次 |
| 最近记录: |