webentwicklung-frage-antwort-db.com.de

Android Studio "Aktuelle NDK-Unterstützung ist veraltet"

Ab Januar 2015 ist die NDK-Unterstützung für Android Studio noch unbrauchbar .. Eine kryptische Nachricht lautet: "Alternative wird in Zukunft bereitgestellt."

Ich würde gerne wissen, was die Richtung von Gradle/Google ist, da es momentan unmöglich ist, einen geeigneten Entwicklungsplan zu planen.

Version 0.7+: Sie schlugen vor, noch ndk-build/ant zu verwenden Version 0.8+: Sie haben eine minimale NDK-Unterstützung eingeführt Version 1.0.0: Es sah so aus, als würde die NDK-Unterstützung offiziell sein Version 1.0.2: Es sieht jetzt so aus, als sei die NDK-Unterstützung veraltet.

Meine Fragen sind:

  • Werden alle auf ndk-build und handgefertigte Android.mk-Dateien zurückgreifen?

  • Verwendet jemand die derzeit veraltete Methode für 1.0.0+ (Unterstützung von Gradle ndk) für ein ernsthaftes Projekt?

  • Welche Richtung soll die "Alternative in Zukunft" geben? Ist es möglich, dass ein Insider dies beantwortet, ohne die Unternehmensregeln zu verletzen?

Edit: Es handelt sich nicht um ein Duplikat, da es sich auf die Entwicklung von Android Studio und NDK bezog. Die andere Frage bezieht sich auf eine sehr alte Version von Android Studio. Ich habe in meinem Beitrag ausführlich darauf hingewiesen, dass sich der NDK-Support von Version zu Version ohne drastisch geändert hat eine klare Richtung, bisher mit der Veröffentlichung von 1.3

25
Dado

Update von Google I/O 2015

Android Studio v1.3 Preview - Wir veröffentlichen eine neue Version von Android Studio. Am bemerkenswertesten ist eine häufig nachgefragte Funktion von Android NDK & Spieleentwickler: Code-Bearbeitung und Debugging für C/C++ - Code. Beyogen auf JetBrains Clion-Plattform bietet das Android Studio NDK-Plugin Funktionen wie refactoring und Code Completion für C/C++ - Code neben Ihrem Java-Code. Die Unterstützung für Java- und C/C++ - Code ist integriert kostenlos in eine Entwicklungsumgebung für Android-App Entwickler. Update auf Android Studio v1.3 über den Kanarischen Kanal und Lass uns wissen was du denkst.

Quelle vom Android-Entwicklerblog hier


Neues Update 30.7.2015 -> Android Studio v1.3 veröffentlicht

Als Teil des stabilen Android 1.3-Releases haben wir ein Early .__ hinzugefügt. Greifen Sie auf eine Vorschau der Unterstützung für C++ - Editor und -Debugger zu experimentelles Build-Plugin. Auf der Android C++ - Vorschau-Seite finden Sie Informationen zum Einstieg. Unterstützung für komplexere Projekte und Build-Konfigurationen sind in Entwicklung .  enter image description here

Zitiert aus dem Android-Entwickler-Blog hier .

Zusatzfunktionen:

  • Code-Vervollständigung
  • Code-Navigation (zur Deklaration springen, zwischen Header und Implementierung wechseln usw.)
  • Schnelle Korrekturen
  • Intentionen
  • Umgestaltung
  • Quellformat
  • Debugging
  • ...

Anweisungen zur Verwendung finden Sie unter hier .

12
Ahmed Hegazy

Ich rufe die Kommandozeile auf, nicht sicher, woher ich das habe, es ist im Grunde Ihre erste Option, mit ndk-build mit Android.mk zurückgesetzt. Gut, wenn Sie ndk abiFilters nicht nach Produktgeschmack steuern möchten.

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

Ich sehe diese Warnungen nur, wenn ich abiFilter für die productFlavors einrichte:

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

Beachten Sie, ältere Versionen von Gradle-Plugins verwendeten Android.plugin.ndkFolder anstelle von Android.ndkDirectory. Weitere Informationen finden Sie unter: http://tools.Android.com/tech-docs/new-build-system/migrating-to-1-0-0

5
weston

NDK wird ab Android Studio 1.3 vollständig unterstützt, einschließlich nativen Debugging.

4
NoAngel
Android.useDeprecatedNdk=true

in Ihren gradle.properties

0
xrealm