2016-04-28 15 views
0

AndroidアプリをAntからGradleに変換する必要があります。このアプリは、クロスプラットフォームのC + +ライブラリを使用しています。 Antでは、make(.mk)ファイルを使用して、JNIライブラリを作成するためにコンパイルされるファイルを決定します。私は、新しい実験的なGradleバージョン(gradle-experimental:0.7.0-rc1)を使って、Antがやっていることと同等のことをやろうとしています。ホワイトリストをGradle NDKビルドでコンパイルする方法

問題はdocumentationによれば、これはできません。

sources.main { 
     jni { 
      source { 
       include "someFile.cpp" // This is ignored. 
      } 
     } 
    } 

これには誰か回避策がありますか?これを行うには

答えて

1

比較的簡単な方法は、あなたの.mk既存のmakefileを使用し続けるとNDK-構築するのGradleから、次のように呼び出すことです:

// Call external ndk-build(.cmd) script to build the native code 
task ndkBuild(type: Exec) { 
    def ndkBuildExt = Os.isFamily(Os.FAMILY_WINDOWS) ? ".cmd" : "" 
    commandLine "ndk-build${ndkBuildExt}", '-C', file('.').absolutePath, 
      '-j', Runtime.runtime.availableProcessors() 
} 

tasks.withType(JavaCompile) { 
    compileTask -> compileTask.dependsOn ndkBuild 
} 

このアプローチでは、設定することが、あなたのNDKのインストールへのパスが必要ですAndroid Studioの[プロジェクト構造]ダイアログ(ファイル - >プロジェクト構造)で、またはコマンドラインでANDROID_NDK_HOME環境変数を設定することで、

+0

これは正確には私が探していたものではありませんが、プラグインは実験中ですが、それは容認できる解決策です。 –

関連する問題