Drawables ändern sich nicht, nachdem sie in den Ordnern durch andere ersetzt wurden

8

Ich habe ein neues Thema für meine App erstellt und entschieden, dass ich das alte nicht mehr brauche. Also habe ich meine neuen Bilddateien über die alten kopiert und alle ersetzt. Ich habe das für alle meine Drawables-Ordner getan. Ich habe dann für alle Fälle R.java neu erstellt und meine Anwendung neu erstellt.

Aus irgendeinem Grund nimmt es die alten Bilder auf und zeigt sie an. In Ordnung, dachte ich, muss etwas im Speicher / Cache sein. Ich wische nur das Bild meines Emulators ab und versuche es erneut.

Nach diesem Schritt verwendete die App immer noch die alten Bilder. Ich dachte, ich hätte einen Fehler gemacht und die Bilder in Eclipse überprüft, aber es zeigte die neuen Bilder dort. Ich nahm dann drastische Dinge und löschte die Drawables-Ordner. Das hat natürlich dazu geführt, dass mein Projekt ausflippte und ich habe schnell die gewünschten neuen Bilder hinzugefügt und das Projekt neu erstellt. Es traten keine Fehler auf und alle Bilder erschienen in Eclipse geändert.

Aber beim Ausführen der App zeigten sich immer noch die alten Bilder. Außer in einigen Teilen der App. Von den 70 Bildern, die ich verwendet habe, zeigten nur 2 die neue Version. Alle anderen zeigen immer noch die alten Bilder.

Was kann hier vorgehen? Ich habe versucht, meinen Emulator neu zu starten, das Projekt neu zu speichern, ein neues Projekt zu erstellen, das alte als Quelle zu verwenden, mein Telefon neu zu starten, alle App-Daten vor der Installation der App zu löschen, alle Bilder zu löschen und durch die neuen zu ersetzen, aber nichts scheint arbeiten.

Wie kann eine App, die neue Bilder enthält, die auf einem vollständig neuen Emulator ausgeführt werden, immer noch Bilder anzeigen, die mindestens eine Stunde früher gelöscht wurden?

    
Sander van't Veer 08.12.2011, 13:19
quelle

5 Antworten

22

Löschen Sie Ihren bin-Ordner , um alte kompilierte Daten zu entfernen.

    
Jave 08.12.2011, 13:58
quelle
5

TL; DR: Überprüfen Sie Ihre anderen drawable-xxxdpi-Ordner auch auf alte Versionen!

Ich hatte das gleiche Problem und keine der Lösungen hier half. Es hat mich verrückt gemacht.

Ich hatte res / drawable-hdpi / file.jpg durch file.png ersetzt. Es war eine andere Erweiterung und hatte andere Inhalte. Eclipse sah die neue Version, aber keine Reinigung / Aktualisierung, das Deinstallieren der App oder das manuelle Löschen von bin / gen Ordnern ließ das Gerät die neue Version sehen.

Dann erkannte ich, dass ich andere Versionen hatte:

  • res / Zeichen-ldpi / file.jpg
  • res / Zeichen-mdpi / file.jpg
  • res / Zeichen-xhdpi / file.jpg

Nachdem ich diese Versionen durch Dateiversionen in der Größe file.png ersetzt hatte, wurde das Problem durch einen einfachen Neustart der App behoben. Es sieht so aus, als ob der Android-Ressourcen-Compiler eine "jpg" -Version der Datei zuerst in einem anderen der ziehbaren Ordner gesehen und dann die nachfolgende "png" -Version in drawable-hdpi ignoriert hat. Obwohl das Gerät, auf dem es lief, hdpi war, kam das Zeichen aus einem anderen dpi-Ordner.

    
foo64 20.06.2013 17:50
quelle
1

Wenn Sie andere Drawable-Ordner für alte Versionen überprüft und Ihre Ordner bin und gen gelöscht haben, funktioniert das nicht.

Suchen Sie nach: setImageResource(R.drawable.YourPNG) in Ihrem Code, der das in XML konfigurierte Zeichen aus: res / layout / folder überschreiben könnte.

    
שלומי שטיין 02.08.2015 13:44
quelle
0

Android Studio: Wenn Clean und Build nicht funktioniert, versuche es mit

Gehe zu File & gt; Invalidate Caches / Restart

oder File & gt; Synchronize

beide arbeiteten für mich.

    
Jorgesys 18.09.2015 00:02
quelle
0

Die einfachste Lösung besteht darin, die App von Ihrem Emulator zu deinstallieren und dann erneut zu installieren, indem Sie sie erneut in Android Studio ausführen. (Dies wird alles zu einer Aktualisierung zwingen)

Das ist immer ein seltsames Problem, aber ich habe das herausgefunden, indem ich die älteren Bilder von meinem PC löschte, aber das ältere Bild würde immer noch auf der App erscheinen (was unmöglich ist). Also dachte ich, das Problem sei mit dem Emulator. (Da der Emulator seinen eigenen Speicher hat)

Wenn der Dateipfad und der Dateiname gleich bleiben, würde ich annehmen, dass Android Ihre App nicht aktualisiert, obwohl das neue Bild eine andere Größe hat. Seltsam.

    
k.serr 10.01.2017 05:22
quelle

Tags und Links