web-dev-qa-db-ja.com

Android Studio "現在のNDKサポートは非​​推奨です"

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のリリースで

25
Dado

Google I/O 2015からの更新

Android Studio v1.3 Preview-Android St​​udioの新しいバージョンをリリースしています。最も注目すべきは、Android[〜#〜] ndk [〜#〜]およびゲーム開発者からの要望の多い機能です:C/C++コードのコード編集とデバッグ。 JetBrains Clionプラットフォームに基づいて、Android St​​udio NDKプラグインは、C/C++コード用のリファクタリングやコード補完などの機能を提供します。 Javaコード。 JavaおよびC/C++コードのサポートは、Androidアプリ開発者向けの1つの開発エクスペリエンスに無料で統合されています。 Canaryチャンネルを介してAndroid St​​udio v1.3に更新し、ご意見をお聞かせください。

Android開発者ブログからのソース こちら


新しいアップデート2015年7月30日-> Android St​​udio v1.3がリリースされました

Android 1.3安定版リリースの一部として、C++エディターとデバッガーサポートの早期アクセスプレビューと実験的なビルドプラグインを組み合わせました。開始方法については、Android C++プレビューページを参照してください。より複雑なプロジェクトとビルド構成のサポートは開発中です。 enter image description here

Android開発者ブログ ここ から引用。

追加された機能

  • コード補完
  • コードナビゲーション(宣言に移動、ヘッダーと実装の間をジャンプなど)
  • クイックフィックス
  • 意図
  • リファクタリング
  • ソース形式
  • デバッグ
  • ...

使用方法の手順については、 こちらをご覧ください

12
Ahmed Hegazy

コマンドラインを呼び出しますが、どこから取得したのかわかりません。基本的には、最初のオプションであり、手作りのndk-buildAndroid.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 {
}

abiFilterproductFlavorsをセットアップした場合にのみ、これらの警告が表示されます。

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-

5
weston

Android Studio 1.3、ネイティブデバッグを含む)以降、NDKは完全にサポートされます。

4
NoAngel
Android.useDeprecatedNdk=true

あなたのgradle.propertiesで

0
xrealm