Android - Fehler beim öffnen zip-Archiv
Bin ich den Download der apk-Datei aus dem web und speichern ihn in einen Zusammenhang.getCacheDir(). Ich bin beim downloaden der Datei von HttpURLConnection - ich bin nicht gefragt, eigentlich auf den code (es ist voll funktionsfähig), so bin ich nicht posten es hier. Ich erfolgreich initiieren herunterladen. Datei wird heruntergeladen, in den cache und dann aufgefordert wird, die installation aber system kann nicht öffnen Sie meine APK und schreibt Fehler der Analyse.
Also problem ist wie folgt:
03-31 16:48:43.740: INFO/ActivityManager(59): Start proc com.android.packageinstaller for activity com.android.packageinstaller/.PackageInstallerActivity: pid=620 uid=10026 gids={}
03-31 16:48:44.749: WARN/zipro(620): Unable to open zip '/data/data/com.my.app/cache/myApp.apk': Permission denied
03-31 16:48:44.749: DEBUG/asset(620): failed to open Zip archive '/data/data/com.my.app/cache/myApp.apk'
03-31 16:48:44.930: WARN/PackageParser(620): Unable to read AndroidManifest.xml of /data/data/com.my.app/cache/myApp.apk
03-31 16:48:44.930: WARN/PackageParser(620): java.io.FileNotFoundException: AndroidManifest.xml
Problem ist - ich habe nicht die Berechtigung zum Zugriff auf programaticaly /cache. Gibt es eine Möglichkeit, wie es zu lösen? Ich will nicht für die Verwendung von externen Speicher wie einem download-Verzeichnis (installation funktioniert, wenn ich die download-Datei auf externes Speichermedium), cache ist groß, weil die Datei nicht zugänglich für Nutzer aus dem Datei-manager und das ist was ich will. Vielen Dank für Ihre Gedanken.
Dieses problem wurde für mich unlösbar für über einen Monat jetzt...
Edit: Noch keine Lösung, ich bin versucht zu denken, dass ich gefunden 1. Sache, dass es nicht möglich ist mit Android
Edit2: ich muss schon suchen bad - meine heruntergeladenen apk vorhanden ist, im cache... Es gibt immer noch keine Berechtigung, mit der Installation von dir?
- haben Sie versucht, den
openFileOutput()
....wenn nicht, versuchen Sie es mitMODE_WORLD_READABLE
- Hi hast du die Lösung zu oben genannten problem. Ich bin in ähnlichen Update jetzt.
- Ich habe gesehen
WORLD_WRITABLE
vorgeschlagen, in so ziemlich jeder Antwort in diesem Kommentar. JEDOCH NICHT TUN, für die anderen als ein test, der die Berechtigungen sind das problem.
Du musst angemeldet sein, um einen Kommentar abzugeben.
chmod 666 auf die heruntergeladene apk-Datei, bevor Sie installieren Sie es in Ihrem code
detail :
chmod 644
statt, die die Berechtigung für/system
apps. Nicht sicher, warum würden Sie wollen einechmod 666
so dass andere Programme Schreibzugriff haben. Sie könnten auch installieren Sie es und tun dies durchadb
und dann neu starten.Kann Ihnen helfen:
Ich sehen, was passiert..
Den cache-dir ist ein cache verwaltet von Android, was bedeutet, es kann gereinigt werden, sobald der interne Speicher beginnt zu laufen niedrig.
UND wenn Ihre Anwendung ist die Einnahme zu viel Speicherplatz auf ein cache (was eine APK ist wahrscheinlich tun), wenn Ihre Anwendung wird angehalten/gestoppt Android können reinigen Sie Ihren cache-Verzeichnis.
Um es zu testen, dies ist der Fall, alles tun, wie Sie getan haben und wenn der Installationsvorgang beginnt, öffnen Sie die DDMS und sehen, ob Ihre Datei immer noch im cache.
Wenn nicht, also android hat gereinigt die Anwendung cache, weil es nicht mehr läuft.
Versuchen Benutzer einen anderen Ansatz, statt
context.getCacheDir()
versuchencontext.getFilesDir()