无法运行"ANY"反应本机示例项目

boz*_*mob 8 performance android android-ndk reactjs react-native

我想在Ubuntu 14.04上运行UIExplorer项目.我已经安装了SDK和NDK.我可以运行通常的本地反应项目(我创建的那个),但不是官方回购例子.

export ANDROID_NDK=/home/bozzmob/android-ndk-r10e/
Run Code Online (Sandbox Code Playgroud)

我收到以下错误 -

任务'执行失败':ReactAndroid:buildReactNdkLib'.

进程'命令'/ home/bozzmob/android-ndk-r10e/ndk-build''以非零退出值2结束

日志看起来像 -

root@purvotara:~/ReactJS/native/react-native# ./gradlew :Examples:UIExplorer:android:app:installDebug
.
.
.
:ReactAndroid:buildReactNdkLib
make: Entering directory `/home/bozzmob/ReactJS/native/react-native/ReactAndroid/src/main/jni/react/jni'
[armeabi-v7a] Compile++ thumb: reactnativejni <= OnLoad.cpp
[armeabi-v7a] SharedLibrary : libfb.so
[armeabi-v7a] SharedLibrary : libglog.so
[armeabi-v7a] StaticLibrary : libdouble-conversion.a
BFD: /home/bozzmob/android-ndk-r10e/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../libexec/gcc/arm-linux-> androideabi/4.8/liblto_plugin.so: file too short

BFD: /home/bozzmob/android-ndk-r10e/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../libexec/gcc/arm-linux-androideabi/4.8/liblto_plugin.so: file too short

BFD: /home/bozzmob/android-ndk-r10e/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../libexec/gcc/arm-linux-androideabi/4.8/liblto_plugin.so: file too short

BFD: /home/bozzmob/android-ndk-r10e/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../libexec/gcc/arm-linux-androideabi/4.8/liblto_plugin.so: file too short

BFD: /home/bozzmob/android-ndk-r10e/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../libexec/gcc/arm-linux-androideabi/4.8/liblto_plugin.so: file too short

BFD: /home/bozzmob/android-ndk-r10e/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../libexec/gcc/arm-linux-androideabi/4.8/liblto_plugin.so: file too short

BFD: /home/bozzmob/android-ndk-r10e/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../libexec/gcc/arm-linux-androideabi/4.8/liblto_plugin.so: file too short

BFD: /home/bozzmob/android-ndk-r10e/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../libexec/gcc/arm-linux-androideabi/4.8/liblto_plugin.so: file too short

[armeabi-v7a] Prebuilt : libjsc.so <= /home/bozzmob/ReactJS/native/react-native/ReactAndroid/build/third-party-ndk/jsc/jni/armeabi-v7a/
[armeabi-v7a] Compile++ thumb: reactnative <= Bridge.cpp
[armeabi-v7a] Compile++ thumb: reactnative <= Value.cpp
[armeabi-v7a] Compile++ thumb: reactnative <= JSCHelpers.cpp
[armeabi-v7a] Compile++ thumb: reactnative <= JSCExecutor.cpp
[armeabi-v7a] Install : libjsc.so => /home/bozzmob/ReactJS/native/react-native/ReactAndroid/build/react-ndk/all/armeabi-v7a/libjsc.so
[armeabi-v7a] Install : libgnustl_shared.so => /home/bozzmob/ReactJS/native/react-native/ReactAndroid/build/react-ndk/all/armeabi-v7a/libgnustl_shared.so
make: *** [/home/bozzmob/ReactJS/native/react-native/ReactAndroid/build/react-ndk/all/armeabi-v7a/libgnustl_shared.so] Error 1
make: *** Deleting file /home/bozzmob/ReactJS/native/react-native/ReactAndroid/build/react-ndk/all/armeabi-v7a/libgnustl_shared.so' make: *** Waiting for unfinished jobs.... make: Leaving directory/home/bozzmob/ReactJS/native/react-native/ReactAndroid/src/main/jni/react/jni'
:ReactAndroid:buildReactNdkLib FAILED

FAILURE: Build failed with an exception.

    What went wrong:
    Execution failed for task ':ReactAndroid:buildReactNdkLib'.

        Process 'command '/home/bozzmob/android-ndk-r10e/ndk-build'' finished with non-zero exit value 2

    Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 1 mins 34.069 secs
Run Code Online (Sandbox Code Playgroud)

请让我知道我做错了什么?

kzz*_*zzf 1

似乎您在编译react-native android 的本机(c++)源时遇到问题。为了启动新项目,您不需要这样做(不需要 NDK 设置),因此您可以尝试创建示例项目react-native init(请参阅说明)。之后,您只需将示例应用程序 JS 文件复制到新创建的项目即可。

如果您仍然想从源代码构建框架代码,我需要更多详细信息来帮助您。我建议为 ndk-build 启用详细模式,然后您可以返回此处查看输出。为了启用详细模式,您需要修改此文件:ReactAndroid/build.gradle并添加'V=1'到 args,以便我链接到的代码片段如下所示:

    commandLine getNdkBuildFullPath(),
        'NDK_PROJECT_PATH=null',
        'V=1',
        "NDK_APPLICATION_MK=$projectDir/src/main/jni/Application.mk",
        'NDK_OUT=' + temporaryDir,
Run Code Online (Sandbox Code Playgroud)