NativeScript при добавяне на потребителски ресурси/json файлове

Създавам проект за насочване към Android и в него искам да идва с .json файл, от който ще бъдат заредени някои данни.

Поставих моя .json файл в папката Android. Когато стартирам "tns run android --device 1" (което е моето физическо устройство), получавам:

-code-gen:
[mergemanifest] No changes in the AndroidManifest files.
 [echo] Handling aidl files...
 [aidl] No AIDL files to compile.
 [echo] ----------
 [echo] Handling RenderScript files...
 [echo] ----------
 [echo] Handling Resources...
 [aapt] Found new input file
 [aapt] Generating resource IDs...
 [aapt] invalid resource directory name: /Users/konrad/Desktop/NativeScript/hello-world/platforms/android/res res
 [aapt] invalid resource directory name: /Users/konrad/Desktop/NativeScript/hello-world/platforms/android/res small.json

BUILD FAILED
/usr/local/Cellar/android-sdk/24.3.3/tools/ant/build.xml:649: The following error occurred while executing this line:
/usr/local/Cellar/android-sdk/24.3.3/tools/ant/build.xml:694: null returned: 1

Total time: 0 seconds
Command ant failed with exit code 1

Файлът се нарича small.json

РЕДАКТИРАНЕ: Дори и да премахна файла, проблемът си остава.


person user2827159    schedule 08.07.2015    source източник


Отговори (1)


Свойството на Android е, че ограничава достъпа до някои части на файловата система. Има два начина за достъп до файлове в NativeScript за Android:

1) JavaScript начин

var fs = require('file-system');
var documents = fs.knownFolders.documents();
var myFile = documents.getFile(filename);   

както е посочено в документите: https://github.com/NativeScript/docs/blob/master/ApiReference/file-system/HOW-TO.md

2) Специфичен начин за Android, включително библиотека на трета страна, наречена „json-simple“, която трябва да бъде прикачена чрез командата tns library add android.

var context = app.android.context;
var assets = context.getAssets();

var br = new java.io.BufferedReader(new java.io.InputStreamReader(assets.open(filename)));

var parser = new org.json.simple.parser.JSONParser();
try {
    parser.parse(br);
} catch (ex) {
    var javaEx = ex.nativeException;
    var msg = javaEx.getMessage();
    console.log("whops! : "+msg);

}
person user2827159    schedule 09.07.2015