現在、アンドロイドのnbkプロジェクトに取り組んでいます。実行中./gradlew buildNativeは成功しますが、グラデルビルドは行われません
compiling TextRenderer.cpp failed.
/Users/user/android-ndk/san-angeles/app/src/main/jni/src/Renderers/TextRenderer.cpp:5:10: fatal error: 'ft2build.h' file not found
#include <ft2build.h>
^
1 error generated.
compiling BoxRenderer.cpp successful.
compiling triangle.cpp successful.
Finished compileSanangelesArmeabi-v7aDebugSharedLibrarySanangelesMainCpp, see full log file:///Users/user/android-ndk/san-angeles/app/build/tmp/compileSanangelesArmeabi-v7aDebugSharedLibrarySanangelesMainCpp/output.txt.
:私は
./gradlew buildNative
を使用して構築することができていますが、私は
gradle assembleDebug
をしようとすると、私はエラーが出
def ndkDir = "/Development/android-sdk-macosx/ndk-bundle"
task buildNative(type: Exec, description: 'Compile JNI source via NDK') {
commandLine "$ndkDir/ndk-build",
'-C', file('src/main/jni').absolutePath,
'-j', Runtime.runtime.availableProcessors(),
'all',
'NDK_DEBUG=1'
}
task cleanNative(type: Exec, description: 'Clean JNI object files') {
commandLine "$ndkDir/ndk-build",
'-C', file('src/main/jni').absolutePath,
'clean'
}
:私は私のGradleラッパーから構築することができるように私は、私のbuild.gradleに現在のコマンドを持っています Was able to cross compile Freetype2, now what?
編集:
012それはその時点(と思う)を通過したは、私が問題にクロスコンパイルFreeTypeライブラリを使用していますが、私は得ました
私は私のGradleはこれに建てる変更されました:
apply plugin: 'com.android.model.application'
model {
android {
...
sourceSets.main {
jniLibs.srcDir 'src/main/jni/freetype/lib'
jni.srcDirs = []
}
...
}
}
task buildNative (...){
...
}
task cleanNative (...){
...
}
をしかし、今、私はこのエラーを取得する:
Gradle sync failed: Cause: com.android.build.gradle.managed.AndroidConfig$Impl
** jni **ディレクトリにCPPファイルがある場合、Android Studio gradle pluginによって自動的に起動されるC++ビルドを無効にする必要があります。通常、このタスクを無効にするには、人々は** jni.srcDirs = [] **を設定しますが、C++コンパイルタスクを名前で無効にすることをお勧めします: 'if(task.name.contains( 'compileDebugNdk')|| task.name。 contains( 'compileReleaseNdk'))task.enabled = false'です。 –
これはライブラリをjniにリンクするのを妨げますか? – iHowell
そして、これをあなたのコードに正確にどこに入れましたか? – iHowell