2015年1月の時点で、Android studioのNDKサポートはまだ使用できません。将来的に代替手段が提供されます。
現時点で適切な開発計画を計画することは不可能であるため、これに関するgradle/googleの方向性を知りたいと思います。
バージョン0.7+:ndk-build/antを引き続き使用することを提案しましたバージョン0.8+:最小限のNDKサポートを導入しましたバージョン1.0.0:NDKサポートが公式バージョン1.0.2になりそうでした:現在NDKサポートは非推奨です。
私の質問は:
誰もがndk-buildに戻り、手作りのAndroid.mkファイルに戻りますか?
深刻なサイズのプロジェクトで、1.0.0 +(gradle ndk support)で現在非推奨のメソッドを使用している人はいますか?
「代替案は将来提供される」とはどのような方向に向かうのでしょうか?インサイダーは、会社の規則を破ることなくそれに答えることができますか?
編集:Android StudioとNDKの進化を指していたため、重複していません、他の質問はAndroid Studioの私の投稿では、NDKサポートが明確な方向性のないバージョンからバージョンへと劇的に変化しましたが、これまでは1.3のリリースで
Android Studio v1.3 Preview-Android Studioの新しいバージョンをリリースしています。最も注目すべきは、Android[〜#〜] ndk [〜#〜]およびゲーム開発者からの要望の多い機能です:C/C++コードのコード編集とデバッグ。 JetBrains Clionプラットフォームに基づいて、Android Studio NDKプラグインは、C/C++コード用のリファクタリングやコード補完などの機能を提供します。 Javaコード。 JavaおよびC/C++コードのサポートは、Androidアプリ開発者向けの1つの開発エクスペリエンスに無料で統合されています。 Canaryチャンネルを介してAndroid Studio v1.3に更新し、ご意見をお聞かせください。
Android開発者ブログからのソース こちら 。
Android 1.3安定版リリースの一部として、C++エディターとデバッガーサポートの早期アクセスプレビューと実験的なビルドプラグインを組み合わせました。開始方法については、Android C++プレビューページを参照してください。より複雑なプロジェクトとビルド構成のサポートは開発中です。
Android開発者ブログ ここ から引用。
追加された機能:
使用方法の手順については、 こちら 。をご覧ください
コマンドラインを呼び出しますが、どこから取得したのかわかりません。基本的には、最初のオプションであり、手作りのndk-build
でAndroid.mk
に戻ります。製品のフレーバーによってndk abiFiltersを制御したくない場合は問題ありません。
apply plugin: 'com.Android.library'
Android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
ndk {
moduleName "glues"
}
}
sourceSets.main {
jniLibs.srcDir 'src/main/libs' //set .so files location to libs
jni.srcDirs = [] //disable automatic ndk-build call
}
task buildNative(type: Exec, description: 'Compile JNI source via NDK') {
def ndkDir = Android.ndkDirectory
commandLine "$ndkDir/ndk-build",
'-C', file('src/main/jni').absolutePath, // Change src/main/jni the relative path to your jni source
'-j', Runtime.runtime.availableProcessors(),
'all',
'NDK_DEBUG=1'
}
task cleanNative(type: Exec, description: 'Clean JNI object files') {
def ndkDir = Android.ndkDirectory
commandLine "$ndkDir/ndk-build",
'-C', file('src/main/jni').absolutePath, // Change src/main/jni the relative path to your jni source
'clean'
}
clean.dependsOn 'cleanNative'
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn buildNative
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
}
abiFilter
でproductFlavors
をセットアップした場合にのみ、これらの警告が表示されます。
productFlavors {
x86 {
ndk {
abiFilter "x86"
}
}
mips {
ndk {
abiFilter "mips"
}
}
armv7 {
ndk {
abiFilter "armeabi-v7a"
}
}
arm {
ndk {
abiFilter "armeabi"
}
}
fat
}
古いgradleプラグインバージョンは、Android.plugin.ndkFolder
ではなくAndroid.ndkDirectory
を使用していることに注意してください。詳細については、以下を参照してください: http://tools.Android.com/tech-docs/new-build-system/migrating-to-1-0-
Android Studio 1.3、ネイティブデバッグを含む)以降、NDKは完全にサポートされます。
Android.useDeprecatedNdk=true
あなたのgradle.propertiesで