2017-11-22 3 views
1

Ich versuche NDK mit Android Studio zu verwenden, um meinen C++ Code zu kompilieren. In meinem C++ - Code habe ich ein paar Image-Header, die sehr große unsigned Char-Array gespeichert. Ich kann den Code mit Standalone-NDK problemlos kompilieren.Android Studio stürzt mit großer C++ Header-Datei ab

Aber innerhalb von Android Studio, wenn ich diese Bilddaten Header-Dateien enthalten, wird Android Studio mit 100% CPU-Auslastung einfrieren.

Gibt es eine Einstellung, die ich in Android Studio fehlt? Wie soll ich dieses Problem lösen? Ich möchte den Code in Android Studio kompilieren, damit ich den C++ - Code durchgehen kann. Und die Bilddaten sollten innerhalb des Programms kompiliert werden (keine separate Datei).

Begin of Unsigned char array of Image Data enter image description here

Vorerst

aktualisiert, habe ich versucht, Pragma einmal in der CPP verwendet, bevor die Header (statt in dem Header der Definition), und es würde funktionieren. Aber wenn ich Include-Wachen oder #pragma einmal in die Kopfzeile einfüge, wird Android Studio immer noch einfrieren. Ich verstehe nicht, warum Pragma einmal und Wächter nicht funktioniert, wenn ich in die Header setze.

pragma one

+0

Ist es das Einfrieren eigentlich? Hast du es ausreichend lange (24 Stunden) kompilieren lassen? – xyious

+0

Wie groß ist * sehr groß * genau? 97000 Zeilen Array-Daten sind ziemlich groß, und Sie haben * ein paar * gesagt. Welche Art von Gedächtnisschwein schreibst du für Android? –

+0

Die Header-Datei ist 7.3MB mit 1 unsigned Char-Array – chan3600

Antwort

0

Vorerst löste ich das Problem. Anstatt das char-Array in der Header-Datei zu definieren. Ich verschiebe das Char-Array in die cpp-Datei und erstelle einen global.h-Header, der so aussieht. Android Studio wird jetzt nicht eingefroren.

global.h

#ifndef GLOBAL_H 
#define GLOBAL_H 

    extern const unsigned char image_data1[]; 
    extern const unsigned char image_data2[]; 

#endif // GLOBAL_H