2017-02-15 2 views
2

を存在するが、私は< GLES3/gl3.hを#include NDKとOpenGL ES 3.0.Whenを使用するAndroidのメーカーのアプリを作るしようとしているGLES3/gl3.hを見つけることができませんでした私はそれがIDEがそれを見つけることができることを示す記号だと思う しかし、私はエラーがある:"エラー:(22,10)致命的なエラー: 'GLES3/gl3.h'ファイルが見つかりません "私はプロジェクトをビルドします。プロジェクト構造のNDKパスを確認します。のAndroid StudioのNDKのエラー、それは

sdk\ndk-bundle\platforms\android-21\arch-arm64\usr\include\GLES3 

ここにGLES3/gl3.hが存在します。

私はすでにGLESv3と私のCMakeListを宣言している:

cmake_minimum_required(VERSION 3.4.1) 

# now build app's shared lib 
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall") 

add_library(gl3jni SHARED 
      gl_code.cpp 
      stb_image.cpp 
      ) 

# add lib dependencies 
target_link_libraries(gl3jni 
         android 
         log 
         EGL 
         GLESv3) 

私もしたManifest.xmlでのOpenGL ESのバージョンを宣言:私は間違って何をやっている

<uses-feature android:glEsVersion="0x00030000" android:required="true"/> 

+0

にbuild.gradleにminSdkVersionがを変更する必要がありますか? –

+0

私が構築しているAndroidのバージョンを確認するにはどうすればいいですか?申し訳ありませんが、私はAndroid Studioが初めてです。 –

+0

"targetSdkVersion"のプロジェクトを検索します。 – yakobom

答えて

1

Android ndk-bundleにはapi 18以降のopenglES3がありますが、アームプラットフォームです。

私が意味する、あなたがarmV8_64でプロジェクトをコンパイルしようとしている場合、あなたは21に自分の分のSDKを設定する必要があります。しかし、あなたがarmeabi使用しようかarmeabiV7されている場合、最小APIは18

ので変更になりますあなたのminSDKはのapp/build.gradleファイルに基づいています。

私はあなたが他の3rdpartyライブラリのリンキングを作ることができるほか、コードはこのようなものでなければなりません、あなたはAPI 21を定義し、すべてのアーキテクチャでサポートするために、製品の味を定義することをお勧め:

android.productFlavors { 
     // for detailed abiFilter descriptions, refer to "Supported ABIs" @ 
     // https://developer.android.com/ndk/guides/abis.html#sa 
     create("arm") { 
      ndk.abiFilters.add("armeabi") 
      ndk.ldFlags.add("-L${file(''your_libraries_path'')}".toString()) 
      ndk.ldLibs.addAll(["your_armeabi_library"]) 
     } 
     create("arm7") { 
      ndk.abiFilters.add("armeabi-v7a") 
      ndk.ldFlags.add("-L${file('your_libraries_path')}".toString()) 
      ndk.ldLibs.addAll(["your_armv7_library"]) 
     } 
     create("arm8") { 
      ndk.abiFilters.add("arm64-v8a") 
      ndk.ldFlags.add("-L${file(''your_libraries_path')}".toString()) 
      ndk.ldLibs.addAll(["your_armv8_library"]) 
     } 
} 

このGradleのコードあなたがこのバージョンを持っていない場合は、あなたのgradleバージョンに合わせていくつかの変更を加える必要があります。私にとって

0

あなたはアンドロイド-21のために構築している私は唯一の19

+0

回答する前にまずこれを見てください。 [リンク](https://stackoverflow.com/help/how-to-answer) –