web-dev-qa-db-fra.com

Android Studio "La prise en charge actuelle du NDK est obsolète"

À compter de janvier 2015, la prise en charge de NDK pour le studio Android est toujours inutilisable. Un message crypté indique: "Une alternative sera fournie à l'avenir."

J'aimerais savoir quelle est l'orientation de Google dans ce domaine, car il est impossible de planifier un plan de développement approprié pour le moment.

Version 0.7+: Ils suggèrent de continuer à utiliser ndk-build/ant Version 0.8+: Ils ont introduit un support NDK minimal Version 1.0.0: Il semblait que le support NDK allait être officiel Version 1.0.2: Il semble maintenant que le support de NDK soit obsolète.

Mes questions sont:

  • Est-ce que tout le monde revient à ndk-build et aux fichiers Android.mk fabriqués à la main?

  • Est-ce que quelqu'un utilise la méthode actuellement déconseillée sur 1.0.0+ (support de gradle ndk) sur un projet de taille sérieuse?

  • Quelle sorte de direction serait envisagée "l'alternative dans l'avenir"? Est-il possible pour un initié de répondre à cette question sans enfreindre les règles de l'entreprise?

Edit: ce n'est pas un doublon car il faisait référence à l'évolution d'Android Studio et de NDK, l'autre question concerne une version très ancienne d'Android Studio, comme je l'ai expliqué dans mon message, la prise en charge de NDK a radicalement changé d'une version à une direction claire, jusqu'à présent avec la sortie de la 1.3

25
Dado

Mise à jour de Google I/O 2015

Aperçu d'Android Studio v1.3 - Nous publions une nouvelle version d'Android Studio. Le plus notable est une fonctionnalité très demandée de notre Android NDK & développeurs de jeux: édition de code et débogage pour le code C/C++. Basé sur JetBrains Clion, le plugin Android Studio NDK fournit fonctionnalités telles que refactoring et achèvement de code pour le code C/C++ à côté de votre code Java. Le support du code Java et C/C++ est intégré en une expérience de développement gratuite pour l'application Android développeurs. Mise à jour vers Android Studio v1.3 via le canal Canary et le Dites-nous ce que vous en pensez.

Source du blog des développeurs Android ici


Nouvelle mise à jour 30/7/2015 -> Android Studio v1.3 disponible

Dans la version stable Android 1.3, nous avons inclus Early Aperçu de l'accès au support de l'éditeur et du débogueur C++ associé à un plugin de construction expérimentale. Voir la page de prévisualisation Android C++ pour informations sur la façon de commencer. Soutien à des projets plus complexes et construire des configurations est en développement .  enter image description here

Cité sur le blog des développeurs Android ici .

Fonctionnalités ajoutées:

  • Complétion de code
  • Navigation dans le code (aller à la déclaration, passer de l'en-tête à l'implémentation , Etc.)
  • Réparations rapides
  • Intentions
  • Refactoring
  • Format source
  • Débogage
  • ...

Pour savoir comment l'utiliser, regardez ici .

12
Ahmed Hegazy

J'appelle en ligne de commande, je ne sais pas d'où je viens, c'est en fait votre première option, en revenant à ndk-build avec Android.mk fabriqué à la main. Très bien si vous ne voulez pas contrôler ndk abiFilters par saveur de produit.

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 {
}

Je ne vois ces avertissements que si j'ai configuré abiFilter sur productFlavors:

productFlavors {
    x86 {
        ndk {
            abiFilter "x86"
        }
    }
    mips {
        ndk {
            abiFilter "mips"
        }
    }
    armv7 {
        ndk {
            abiFilter "armeabi-v7a"
        }
    }
    arm {
        ndk {
            abiFilter "armeabi"
        }
    }
    fat
}

Notez que les anciennes versions du plugin Gradle utilisaient Android.plugin.ndkFolder plutôt que Android.ndkDirectory. Pour plus d'informations, voir: http://tools.Android.com/tech-docs/new-build-system/migrating-to-1-0-0

5
weston

NDK sera entièrement pris en charge depuis Android Studio 1.3, y compris le débogage natif.

4
NoAngel
Android.useDeprecatedNdk=true

dans votre gradle.properties

0
xrealm