2017-06-06 6 views
2

MacOS Android Studio 2.3.2でAndEngineサンプルをビルドしようとしています。 しかし、このエラーが発生します。問題が何であるか把握できません。奇妙なことは、Android Studioと同じバージョンのWindowsで普通にビルドされている同じプロジェクトです。AndEngineのNDKを作成する際のエラー

> FAILURE: Build failed with an exception. 
What went wrong: 
Execution failed for task ':andEngine:externalNativeBuildRelease'. 
> Build command failed. 
    Error while executing process /Users/apple/Library/Android/sdk/ndk-bundle/ndk-build with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=/Users/apple/Documents/workspace/AndroidStudio/AndEngineExamples-GLES2/andEngine/src/main/jni/Android.mk  

    NDK_APPLICATION_MK=/Users/apple/Documents/workspace/AndroidStudio/AndEngineExamples-GLES2/andEngine/src/main/jni/Application.mk APP_ABI=mips NDK_ALL_ABIS=mips NDK_DEBUG=0 APP_PLATFORM=android-9 NDK_OUT=/Users/apple/Documents/workspace/AndroidStudio/AndEngineExamples-GLES2/andEngine/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT=/Users/apple/Documents/workspace/AndroidStudio/AndEngineExamples-GLES2/andEngine/build/intermediates/ndkBuild/release/lib /Users/apple/Documents/workspace/AndroidStudio/AndEngineExamples-GLES2/andEngine/build/intermediates/ndkBuild/release/obj/local/mips/libandengine.so} 
    Android NDK: android-9 is unsupported. Using minimum supported version android-14.  
    [mips] Compile++  : andengine_shared <= BufferUtils.cpp 
    /Users/apple/Documents/workspace/AndroidStudio/AndEngineExamples-GLES2/andEngine/src/main/jni/src/BufferUtils.cpp:13:2: error: use of undeclared identifier 'memcpy' 
      memcpy(bufferAddress, dataAddress + pOffset, pLength << 2); 
     ^

マイApplication.mkファイル:

# Build both ARMv5TE and ARMv7-A and x86 machine code. 
APP_ABI := armeabi armeabi-v7a x86 
APP_STL := gnustl_shared 

そしてAndroid.mk:

LOCAL_PATH:= $(call my-dir) 

include $(CLEAR_VARS) 

LOCAL_MODULE    := andengine_shared 
LOCAL_MODULE_FILENAME := libandengine 
LOCAL_CFLAGS    := -Werror 
LOCAL_SRC_FILES   := src/GLES20Fix.c \ 
          src/BufferUtils.cpp 
LOCAL_LDLIBS    := -lGLESv2 
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/src 

include $(BUILD_SHARED_LIBRARY) 
+0

おそらく実現したように、それは 'memcpy'の定義を見つけることができません。どのNDKバージョンを使用していますか? Application.mkを指定すると、どのデバイスを目指していますか? – yakobom

答えて

1

のAndroid NDK:アンドロイド-9がサポートされていません。最低サポートバージョン android-14を使用しています。

あなたのSDKのバージョンがproject.propertiesファイルから取得され、そのラインを持っていない場合Application.mkファイル

APP_PLATFORM := android-14を追加します。

0

Android Studioは、Application.mkファイルの一部の設定を上書きします。たとえば、APP_ABIを上書きします。あなたのアプリ/ build.gradle

defaultConfig { 
    ... 
    externalNativeBuild { 
     ndkBuild { 
      abiFilters "armeabi", "armeabi-v7a", "x86" 
     } 
    } 
} 

を追加する必要があります。サポートされている最小バージョンがandroid-14であるという警告は心配する必要はありませんが、ベータ版のNDK r15には注意してください。

関連する問題