fopen in JNI C-Code für die Datei im Ordner "Assets" in der Android-Anwendung fehlgeschlagen

8

Ich habe einige Dateien im Ordner "Assets" der Android-Anwendung gespeichert.

Jetzt kompiliere ich diese Anwendung und bekomme apk. [Wenn ich diese apk extrahiere, sind meine Dateien im Ordner "Assets"]

Jetzt installiere ich diese apk im mobilen Gerät

und in Diese Anwendung hat einen Code in c Programmierung mit JNI-Schnittstelle.

Jetzt ist mein fopen() Aufruf in c Programmierung für diese Datei fehlgeschlagen.

%Vor%

Ich weiß während der Installation von apk android copy Assets Datei in /data/data/com.packagename/something

Also kennt jemand diesen Pfad, damit ich ihn in fopen()

angeben kann

oder gibt es eine andere Methode, um diese Datei in C-Programmierung zu öffnen.

Wenn ich diese Dateien im Ordner sdcard behalte und auf fopen("/sdcard/myfile","r"); zugreife, funktioniert die Datei. Aber ich möchte diese Dateien nur im Ordner "Assets" behalten

    
Jeegar Patel 23.03.2016, 12:42
quelle

2 Antworten

6

Sie können den Asset Manager verwenden, um auf Assets im JNI-Code zuzugreifen. Es ist Teil von NDK.

kichik 28.03.2016, 05:06

quelle
0

Eine Möglichkeit, die ich gefunden habe, ist, eine Testzeile in den Code zu schreiben, etwa wie folgt:

%Vor%

Wenn Sie jetzt wissen, wo Ihre Assets von Android gespeichert werden, zum Beispiel /data/data/com.packagename/assets/file.png , dann kennen Sie den relativen oder absoluten Pfad zu den Assets. Ich hoffe, das funktioniert für dich, es hat mir geholfen!

    
Cody Richardson 31.03.2016 20:24
quelle

Tags und Links