NDK DSL での LOCAL_SRC_FILES の定義
Android NDK DSL を使用すると、モジュールのネイティブ ソース ファイルを指定できます。ただし、古いバージョンの DSL では、LOCAL_SRC_FILES を手動で定義する直接的な方法はありませんでした。
実験的なプラグイン ソリューション
実験的な Android Gradle プラグイン 0.4.0 では、パターンに基づいて NDK ビルドからソース ファイルを除外できるようになりました。例:
android.sources { main { jni.source { srcDirs = ["~/srcs/jni"] exclude "**/win.cpp" } } }
古いプラグインの回避策
残念ながら、古いバージョンの DSL では、LOCAL_SRC_FILES を直接定義することはできません。代わりに、従来の Android.mk ファイルを使用してネイティブ ソース ファイルを管理することをお勧めします。
デフォルトの NDK ビルド タスクを無効にして、カスタム タスクを挿入してネイティブ ソース ファイルをコンパイルできます。
def ndkBuild = android.ndkDirectory import org.apache.tools.ant.taskdefs.condition.Os if (Os.isFamily(Os.FAMILY_WINDOWS)) { ndkBuild += '.cmd' } task buildNative(type: Exec, description: 'Compile JNI source via NDK') { commandLine '$ndkBuild', 'NDK_PROJECT_PATH="$jniSrc/..' } task cleanNative(type: Exec, description: 'Clean JNI object files') { commandLine '$ndkBuild', 'clean', 'NDK_PROJECT_PATH="$jniSrc/..' } clean.dependsOn 'cleanNative' tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn buildNative } tasks.all { task -> if (task.name.contains('compileDebugNdk') || task.name.contains('compileReleaseNdk')) task.enabled = false }
警告
この回避策ではデバッグ可能なセットアップが生成されない可能性があることに注意してください。これに対処するには、ndk-build を使用して静的ライブラリを構築し、ライブラリからシンボルを取得するために必要なオブジェクトとリンクします。
以上がAndroid NDK DSL で LOCAL_SRC_FILES を定義するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。