Kann keine APKs vom Dateimanager oder Browser installieren?

Bei der Beantwortung dieser Frage habe ich speziell festgestellt, dass ich die VLC Nightlies nicht installieren konnte . Es hatte nichts mit dieser Antwort zu tun, die sich auf die Frage bezog, welche Version von VLC für dieses Gerät geeignet ist. Aber diese Frage wurde tatsächlich von diesem Problem inspiriert: Ich hatte noch nie eine APK, die ich nicht einfach durch Herunterladen installieren konnte, wenn ich mich im Android-Webbrowser befinde und die APK herunterlädt, kann ich im Benachrichtigungs-Applet darauf klicken oben. Wenn ich es tue, heißt es

Kann Datei nicht öffnen

Wenn ich diese Datei mit dem LineageOS-Dateimanager öffne, com.android.documentsuierhalte ich denselben Fehler. Jetzt möchte ich wissen, was speziell nur an den VLC-Paketen gebohrt wird? Hat noch jemand dieses Problem? Warum funktioniert das pm install ./appname.apkin der Shell, aber die GUI nicht?

Ich verwende LineageOS 14.1-20180616, basierend auf Android 7.1.2.

Hast du die Installation von unbekannten Orten im Einstellungsmenü zugelassen?
@Ankush ja, es hat funktioniert, um wahrscheinlich Dutzende von APKs zu installieren. Dies ist eine Art Problem, von dem ich mir sicher bin, dass es entweder spezifisch für die fehlerhafte APK oder für den Dateimanager oder die APK-Parsing-Bibliothek ist. Ich weiß nicht, wo ich anfangen soll, außer zu sagen, dass ich F-Spot über den Browser problemlos installiert habe. Ich glaube nicht, dass der Browser/Dateimanager direkt zu spawnt pm, weil das funktioniert.
Es ist möglich, dass der Inhalts-/Medientyp für die APK-Datei falsch eingestellt ist, sodass der Dateimanager den Dateityp nicht kennt (da er möglicherweise die Erweiterung ignoriert und sich ausschließlich auf den Medientyp (Anwendung/vnd .android.Paket-Archiv).
@Ankush Ich habe mit einer URL zur apk aktualisiert, Sie können gerne einen Blick auf das Paket werfen und sehen, ob Ihnen etwas auffällt. Wenn Sie helfen können, das Problem zu identifizieren, werde ich einen Fehler melden, weil ich denke, dass es einer ist, ich mache einfach nicht viel Android-Entwicklung.
Ich würde einen anderen Dateimanager ausprobieren, nur um sicherzugehen, und dann als Fehler ablegen. Ich kann nicht versuchen, es auf meinem Gerät zu installieren, da mein Telefon keinen ARM-Prozessor hat.
Diese Frage erfordert wirklich jemanden mit umfassender Verpackungserfahrung auf Android / apk. Ich denke, ich würde genauer hinschauen, wenn dort nichts offensichtlich fehl am Platz wäre. Ich werde abwarten, wie diese Probleme behoben werden können, und ob jemand, der klüger ist, mich retten kann einige Zeit im Dunkeln zu schießen.
@EvanCarroll v3.0.11 lässt sich gut installieren, aber ich hatte vor einiger Zeit das gleiche (zufällige) Problem mit Apps, die völlig unabhängig voneinander waren. In meinem Fall war es eine LineageOS-Regression. Versuchen Sie also, wöchentlich auf die neueste Version zu aktualisieren, bevor Sie die Installation erneut versuchen.
@DeathMaskSalesman Ich verwende LineageOS, aber ich werde es gleich versuchen - meine Version ist ziemlich neu.
@DeathMaskSalesman keine Freude, jetzt verwende ich LineageOS 14.1 vom 16. Juni und es funktioniert immer noch nicht.
@DeathMaskSalesman hat es herausgefunden und selbst beantwortet.
@Ankush hat es herausgefunden und selbst beantwortet.

Antworten (1)

Installieren

Mit dem LineageOS Dateimanager

Es scheint, dass es im Dateimanager zwei getrennte Dinge gibt, Downloadein Verzeichnis und Downloadseinen kaputten, unsinnigen Verknüpfungslink:

  • Funktioniert nicht: Im linken Navigationsbereich sehen Sie Images Videos Audio Recent, und dann Downloads Documents, und SM-P600. Die Installation von der Downloadsrechten Leiste gibt diesen Fehler.

  • Funktioniert : Gehen Sie in das Gerät unten im linken Navigationsbereich (das eigentlich nur ein Link zu ist, /data/media/0und klicken DownloadSie dann auf, um zu gelangen , was sich tatsächlich von (Plural und im linken Navigationsbereich) Downloadunterscheidet . Von hier aus können Sie die APK installieren.Downloads

Mit der CLI

  • Aktivieren Sie ADB in den Einstellungen
  • adb shellAuf dem Host ausführen
  • Navigieren Sie zu /sdcard/Downloadsoder /data/media/0/Downloadmit cd. Wenn Sie sich nicht sicher sind, wo sich die apk befindet, versuchen Sie es auszuführen

    find / -name 'VLC*-ARMv7.apk
    
  • Suchen Sie die apk und installieren Sie sie mitpm

    pm install ./VLC*-ARMv7.apk
    

Das Problem

Das Problem scheint zu sein, dass der VLC-Webserver die Anfrage mit einer Antwort beantwortet, die content-type: application/octet-streamso lautet:

$ curl -s -I "https://nightlies.videolan.org/build/android-armv7/VLC-Android-3.0.11-20180618-0249-ARMv7.apk" 
HTTP/2 200 
server: nginx/1.15.0
date: Tue, 19 Jun 2018 03:16:06 GMT
content-type: application/octet-stream
content-length: 25048251
last-modified: Mon, 18 Jun 2018 06:05:02 GMT
etag: "5b274b8e-17e34bb"
accept-ranges: bytes
x-clacks-overhead: GNU Terry Pratchett
strict-transport-security: max-age=31536000

Anstatt application/vnd.android.package-archive. Dies bedeutet, dass Sie nicht über den Browser oder die Downloads- Verknüpfung installieren können. Dies liegt daran, dass APK-Dateien nur Zip-Dateien sind:

$ file VLC-Android-3.0.11-20180618-0249-ARMv7.apk 
VLC-Android-3.0.11-20180618-0249-ARMv7.apk: Zip archive data, at least v2.0 to extract

Der Dateimanager und der Browser versuchen also, sie als solche zu öffnen - und Sie haben nichts, das Zip archive data2.0+ reicht