2017-10-29 1 views
1

React Native for Android에는 .so 파일로 컴파일 된 일부 C/C++ 코드가 있습니다. 어떻게 .so 파일을 만들 수 있습니까? 나는 그것이 https://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/jni/Application.mk와 관련이 있다고 생각합니다. 당신이 할 수있는, 더 공식적인 지침 :React Native의 Android jni 라이브러리 생성 방법

NDK_PROJECT_PATH=node_modules/react-native/ReactAndroid/src/main $ANDROID_HOME/ndk-bundle/ndk-build 

하지만 오류 얻을 :

Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: Android.mk 
+0

'ndk-build -C node_modules/react-native/ReactAndroid/src/main'을 사용해보세요. –

답변

1

UPDATE를

는 내가 프로젝트 루트에서 다음과 같은 새로운 반작용 기본 프로젝트를 생성하고 실행 시도 React Native 문서 (building from source)의 단계를 따르십시오. 소스에서 빌드하면 해당 .so 파일을 빌드하는 buildReactNdkLib Gradle 태스크가 실행됩니다. 반작용 기본 소스 코드에서

  1. 가 나는 buildReactNdkLib 작업이이 build.gradle file을 발견

    나는이 .so를 파일을 생성하는 방법을 알아 냈어.

    ~/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 
    
  2. 반응 네이티브하기 REPO를 경로로 위의 명령에 ~/.../react-native 교체 :

  3. 나는 내 경우에 있었다가 실행 명령을 캡처.

  4. 마찬가지로 나는 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의 이전 버전으로 전환해야했습니다.
    1. here에서 개정판 10e (2015 년 5 월)를 다운로드하여 추출하십시오.
    2. 위의 명령에서 ~/Library/Android/sdk/ndk-bundle/ndk-build 경로를 추출한 폴더의 ndk-build 파일로 변경하십시오.
  5. 생성 된 .so 파일은 react-native/ReactAndroid/build/react-ndk/all입니다.
관련 문제