Не удается установить apks из файлового менеджера или браузера?

В ответ на этот вопрос я специально обнаружил, что не могу установить ночные клубы VLC . Это не имело никакого отношения к тому ответу, который был на вопрос о том, какая версия VLC подходит для этого устройства. Но на самом деле этот вопрос был вызван этой проблемой: у меня никогда раньше не было APK, который я не мог бы установить, просто загрузив, когда я нахожусь в веб-браузере Android, и он загружает APK, я могу щелкнуть по нему в апплете уведомлений на вершине. Когда я это делаю, он говорит

Не могу открыть файл

Когда я открываю этот файл с помощью диспетчера файлов LineageOS, com.android.documentsuiя получаю ту же ошибку. Теперь я хочу знать, что конкретно не так только с пакетами VLC? У кого-нибудь еще есть эта проблема? Почему это pm install ./appname.apkв оболочке работает, а в графическом интерфейсе нет?

Я использую LineageOS 14.1-20180616 на базе Android 7.1.2.

Вы разрешили установку из неизвестных мест в меню настроек?
@Ankush, да, это сработало для установки, вероятно, десятков apk, это какая-то проблема, которая, я уверен, связана либо с искаженным apk, либо с файловым менеджером, либо с библиотекой синтаксического анализа apk. Не знаю, с чего начать, кроме как сказать, что я прекрасно установил f-spot через браузер. Я не думаю, что браузер/файловый менеджер порождает право на pm, потому что это работает.
Возможно, тип содержимого/медиафайла для apk-файла установлен неправильно, поэтому файловый менеджер не знает тип файла (так как в нем может игнорироваться расширение и полагаться исключительно на тип мультимедиа (application/vnd .android.package-архив).
@Ankush Я обновил URL-адрес apk, вы можете взглянуть на пакет и посмотреть, не выскочит ли у вас что-нибудь. Если вы можете помочь определить проблему, я сообщу об ошибке, потому что я думаю, что это одна из них, я просто мало занимаюсь разработкой Android.
Я бы попробовал другой файловый менеджер, чтобы быть уверенным, а затем файл как ошибка. Я не могу попробовать установить его на свое устройство, так как в моем телефоне нет процессора ARM.
этот вопрос действительно требует кого-то с большим опытом упаковки на Android / apk, я думаю, что я бы поискал усерднее, если бы там не было ничего явно неуместного, я подожду, чтобы увидеть, как устранить эти проблемы, и если кто-то умнее может спасти меня некоторое время стрелял в темноте по этому поводу.
@EvanCarroll v3.0.11 устанавливается нормально, но некоторое время назад у меня была такая же (случайная) проблема с приложениями, совершенно не связанными друг с другом. В моем случае это был регресс LineageOS, поэтому попробуйте обновиться до последней еженедельной версии перед повторной попыткой установки.
@DeathMaskSalesman Я использую LineageOS, но попробую прямо сейчас — моя версия довольно новая.
@DeathMaskSalesman без радости, теперь я использую LineageOS 14.1 от 16 июня, и она все еще не работает.
@DeathMaskSalesman разобрался и ответил сам себе.
@Ankush понял это и ответил сам себе.

Ответы (1)

Установка

С файловым менеджером LineageOS

Кажется, что внутри файлового менеджера есть две отдельные вещи: Downloadкаталог и Downloadsкакая-то неработающая абсурдная ссылка на ярлык:

  • Не работает: на левой панели навигации вы увидите Images Videos Audio Recent, а затем Downloads Documents, и SM-P600. Установка с Downloadsправой панели дает эту ошибку.

  • Работает : войдите в устройство в нижней части левой навигационной панели (которая на самом деле является просто ссылкой, /data/media/0а затем нажмите, Downloadчтобы перейти к Downloadтому, что на самом деле отличается от Downloads(во множественном числе и в левой навигационной панели). Отсюда вы можете установить APK.

С интерфейсом командной строки

  • Включить АБР в настройках
  • Запустить adb shellна хосте
  • Перейти к /sdcard/Downloadsили /data/media/0/Downloadс помощью cd. Если вы не уверены, где находится apk, попробуйте запустить

    find / -name 'VLC*-ARMv7.apk
    
  • Найдите apk и установите с помощьюpm

    pm install ./VLC*-ARMv7.apk
    

Проблема

Похоже, проблема в том, что веб-сервер VLC отвечает на запрос таким ответом content-type: application/octet-stream:

$ 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

Вместо application/vnd.android.package-archive. Это означает, что вы не можете установить через браузер или ярлык «Загрузки» . Это потому, что файлы APK — это просто zip-файлы:

$ 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

Итак, файловый менеджер и браузер пытаются открыть их как таковые — и у вас нет чего-то, что поддерживает Zip archive data2.0+.