Flatpak Android Studio не может получить доступ к / usr / lib / jvm даже после того, как было предоставлено разрешение

Я установил Android Studio как flatpak и хочу настроить OpenJDK 11 для запуска модульных тестов (потому что я я использую robolectric, которому требуется Java 9+).

Насколько я понимаю, каталог / usr занесен в черный список, поэтому я разрешил доступ к usr / lib / jvm с помощью приложения FlatSeal .

Когда я пытаюсь запустить модульные тесты, я получаю такую ​​ошибку: 'usr / lib / jvm / java11-openjdk-amd64' не является допустимым домом JRE

Я почти уверен, что каталог является допустимым домом JRE, поскольку при использовании оснастки Android Studio, он распознается, и тесты выполняются.

enter image description here

0
задан 2 May 2020 в 16:30

1 ответ

Я знаю, что это немного поздно, но у меня была такая же проблема, и я нигде не нашел решения. Наконец-то я понял, что после включения доступа /usr/lib/jvm его можно найти внутри приложения flatpak по адресу /var/run/host/usr/ lib/jvm.

Разрешить доступ к /usr/lib/jvm также можно через командную строку, используя

sudo flatpak override --filesystem=/usr/lib/jvm

для включения для всех приложений flatpak или

sudo flatpak override <идентификатор пакета> --filesystem=/usr/lib/jvm

, чтобы включить данный пакет.

Это по-прежнему не будет работать, если версия java хоста динамически связана (как это будет в большинстве случаев), а версия libc хоста отличается от версии в приложении flatpak.В этом случае ваш единственный вариант - использовать статически связанную версию java или найти хитрый трюк компоновщика, который свяжет исполняемый файл java хоста с libc хоста при использовании из приложения flatpak.

Альтернатива

Вы можете установить OpenJDK в плоском пакете, который будет доступен по адресу /usr/lib/sdk/openjdk<версия>/jvm/ из приложения flatpak.

Для установки OpenJDK 11 используйте

flatpak install org.freedesktop.Sdk.Extension.openjdk11

Это невозможно сделать от имени пользователя root, поэтому не используйте sudo. При необходимости измените номер версии. Вам нужно будет перезапустить Android Studio / IntelliJ / ... , чтобы получить доступ к новой установке OpenJDK.

Однако это потребует дополнительного места на диске. Для меня это было чуть больше половины гигабайта. Кроме того, теперь у вас есть две версии Java, которые вам нужно будет обновить отдельно. Кроме того, для flatpak доступна только версия jdk для OpenJDK.

1
ответ дан 28 January 2021 в 20:59

Другие вопросы по тегам:

Похожие вопросы: