2012-12-14 9 views
9

Mögliche Duplizieren neu:
Prevent ndk-build from automatically cleaning moduleJeder NDK Build ist eine vollständige

Android-Projekt mit einer NDK Bibliothek. NDK r8c. Kompilieren unter Cygwin (es ist ein altes Projekt).

Ein Bündel von C++ und C-Dateien und einige .a Bibliotheken über LOCAL_LDLIBS verknüpft.

Seit vor einiger Zeit, ich bin zu bemerken, dass jeder NDK Build über alle Quelldateien geht. Selbst wenn ich den ndk-build zweimal hintereinander anrufe, gibt es beim zweiten Versuch eine vollständige Neuerstellung. Es gibt nichts auf die Wirkung in den .mk Dateien, die ich sehen kann, und der Befehl Ich rufe zu bauen, ist ein Vanille $NDKPATH/ndk-build. Es gibt keine Option B überall.

Die einzige Falte ist dies: auf jedem Build, NDK sagt der folgende:

/cygdrive/c/android-ndk-r8c/build/core/add-application.mk:128: Android NDK: WARNING: 
APP_PLATFORM android-9 is larger than android:minSdkVersion 3 in 
/cygdrive/d/AppPath/AndroidManifest.xml 

Was ist los, bitte? Kann ich irgendwie sehen, basierend auf welchen Dateidaten ist make eine Entscheidung zu treffen, alles neu zu erstellen?

+0

in NDK R8d Feste zu ändern. –

Antwort

13

Es ist ein bekannter Fehler in R8C, die voll verursacht Neuaufbau auch ohne Änderungen am Quellcode. Siehe this bug report.

Die vorgeschlagene fix (nicht von mir) ist die Linie 289 von Build/core/definitions.mk von

$1: $$(__ndk_file_dir)

zu

$1: | $$(__ndk_file_dir)

+0

Den Patch angewendet, es hat funktioniert. Für eine bessere Antwort (und Upvotes) können Sie das Patch-Skript hier einfügen. –

+1

Das ist die Lösung. Ich empfehle auch, das Flag -j für make zu setzen. Für eine Beschreibung siehe [diesen Artikel] (http://www.renderpaz.com/2012/12/speed-up-your-android-ndk-build.html). Kurze Zusammenfassung: füge '' arg value = "- j8"> 'zu build.xml hinzu. – addaon

+0

@Glo: Das ist unabhängig von dieser Frage. Wenn Sie keine Lösung für dieses Problem finden, können Sie eine neue Frage stellen. – Michael

Verwandte Themen