Frage Warum werden meine Asset-Dateien nicht aktualisiert?


Mein Programm öffnet eine TXT-Datei aus dem Ordner "Assets" und liest daraus. Hier ist der Code:

           AssetManager myAssetManager = myContext.getAssets();
           try{
                   InputStream is = myAssetManager.open("databaseeleven.txt");
                   byte[] bytes = new byte[is.available()];
                   is.read(bytes);
                   commands = new String(bytes);

           } catch(IOException e){
                   Toast.makeText(myContext, e.getMessage(), Toast.LENGTH_SHORT).show();
                   e.printStackTrace();
           }//try-catch

Ich habe bemerkt, dass, wenn ich Änderungen an der Datei databaseeleven.txt vornimmt und die Datei speichere, meine Änderungen nicht im Emulator widergespiegelt werden, wenn ich mein Programm erneut ausführe. Das Projekt wird auf einem USB-Stick gespeichert. Ich habe überprüft, ob es nur eine Datei mit diesem Namen gibt, und sie ist aktuell. Ich weiß, dass die Anwendung wegen Änderungen am Code erneut heruntergeladen wird. Ich benutze Egit, Eclipse Version 3.6.2 und ADT Version 10.0.1. Weiß jemand, warum mein Programm nicht von dieser gespeicherten Datei arbeitet?

Update: Das Aktualisieren und erneute Säubern des Projekts hilft nicht.


9
2018-04-23 06:08


Ursprung


Antworten:


Wenn ich Ihr Problem richtig verstanden habe, versuchen Sie, die Datei zu ändern /assets Mappe. Ändern .apk Inhalt nach Unterzeichnung Das Paket ist nicht möglich.

Wenn die Datei klein ist, kopieren Sie sie in Ihre app's private data directory.

Wenn die Datei größer ist, kopieren Sie sie in die /sdcard.


8
2018-05-04 00:44



Es passierte mir mit einer .sqlite Datei in der Vermögenswerte Ordner und ich löste es durch

  1. Deinstallieren der App vom Telefon
  2. und Wiederaufbau.

3
2018-01-12 05:29



Wie groß ist die Dateigröße von databaseeleven.txt?

Es gibt ein Limit von 1 MB pro Datei für die Assets-Datei, wenn die Dateigröße diese Grenze überschreitet, wird sie in deiner APK nicht verfügbar sein.

Wenn dies der Fall ist, gibt es zwei Alternativen, die ich kenne:

  • Teilen Sie Ihre Datei in 1MB Chunks, Sie haben ein Beispiel dafür diese SO Frage
  • Verwenden Sie eine Dateierweiterung, die nicht wie vorgeschlagen von Android komprimiert wird Hier. Beachten Sie, dass Ihre Datei nicht komprimiert wird und Sie wahrscheinlich mit einer großen APK enden werden.

Hinweis: Es scheint, dass das 1 MB-Limit in Android 2.3 entfernt wurde, dies gilt also nur für 2.2 und niedriger.


2
2018-05-03 23:19



Säubern Sie das Projekt, nachdem Sie die Datei bearbeitet haben .... hoffe, das hilft


0
2018-04-23 06:20



hi versuch nach dem auffrischen das projekt in eclipse und sauber & bau es nochmal. Ich hoffe, Sie werden die Änderungen finden, die sich im Emulator widerspiegeln


0
2018-04-23 06:21



Wenn es eine TXT-Datei deines Formats ist, solltest du so etwas machen

InputStream ins =  getResources().openRawResource(R.raw.options);

wobei "options" die Datei options.txt im Ordner ~ / res / raw ist.

Alle Änderungen an dieser Datei erfordern immer noch eine Veröffentlichung / Bereitstellung auf dem Gerät / Emulator, so dass es die neueste Version hat.

Hoffe das hilft...


0
2018-05-05 13:31