Heim > Backend-Entwicklung > C++ > Können Sie LOCAL_SRC_FILES im gradle.build ndk {} DSL definieren?

Können Sie LOCAL_SRC_FILES im gradle.build ndk {} DSL definieren?

Linda Hamilton
Freigeben: 2024-11-29 00:54:11
Original
530 Leute haben es durchsucht

Can You Define LOCAL_SRC_FILES in the gradle.build ndk {} DSL?

LOCAL_SRC_FILES in NDK definieren

Frage:

Ist es möglich, NDK in Gradle zu erstellen? . {} LOCAL_SRC_FILES in DSL definieren?

Hintergrund:

Verwenden Sie in der Datei gradle.build des JNI-Moduls die folgende Konfiguration:

android {
    def jniSrc = System.getProperty("user.home") + "/srcs/jni"

    defaultConfig {
        ndk {
            moduleName "core"
            stl "gnustl_shared"
            cFlags "-std=c++11"
        }
    }

    ...
Nach dem Login kopieren

Der JNI-Quellcode enthält Anweisungen für Code für verschiedene Plattformen (Android, iOS, WinRT). Ziel ist es, Code in Android.mk auszuschließen, der unter Android nicht funktioniert.

Antwort:

Leider unterstützt das aktuelle Gradle-Plugin nicht die Definition von LOCAL_SRC_FILES im ndk {} DSL. Hier sind die Problemumgehungen:

Traditionelle Methode:

Behalten Sie die traditionelle Android.mk-Datei bei, die zuverlässig bestimmten Code ausschließen kann. Es wird empfohlen, die Einstellungen cppFlags und cFlags zu verwenden, um Codezitate und Syntaxhervorhebung in Android Studio zu ermöglichen.

Experimenteller Ansatz (BuildNative-Aufgabe):

Deaktivieren Sie die reguläre NDK-Build-Aufgabe und fügen Sie eine BuildNative-Aufgabe ein, um nativen Code zu erstellen. Dies funktioniert für das experimentelle Plugin „com.android.tools.build:gradle-experimental:0.2.0“.

Erweiterter Ansatz (statische Bibliothek):

Wenn Ihr nativer Code in mehrere Verzeichnisse unterteilt ist (Android-spezifische Dateien und plattformunabhängige Dateien), können Sie die Erstellung einer statischen Bibliothek in Betracht ziehen Bibliothek und verknüpfen Sie sie, um die erforderlichen Symbole zu erhalten. Dieser Ansatz ermöglicht den Aufbau einer statischen Bibliothek mit ndk-build und deren Verwendung mit den erforderlichen Objekten zum Linkzeitpunkt.

Update:

In experimentellen Plugins können Sie „compileJavaTask.dependsOn buildNative“ verwenden, um die Aufgabe „compileTask.dependsOn buildNative“ zu ersetzen.

Update 2:

Es ist möglich, eine einzelne lokale Quelldatei mit dem Android Studio-Projekt zu verknüpfen und so das Problem zu lösen.

Das obige ist der detaillierte Inhalt vonKönnen Sie LOCAL_SRC_FILES im gradle.build ndk {} DSL definieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage