Вызов собственных библиотек во Flutter с использованием каналов платформы - PullRequest
0 голосов
/ 25 апреля 2018

Используя каналы платформы , Flutter может взаимодействовать с собственной платформой (т.е. считывать уровень заряда батареи).На Android это потребует вызова метода Java.

Я бы хотел использовать сторонний Java SDK (для AWS Cognito).Могу ли я поместить эту библиотеку где-нибудь в моем /android и взаимодействовать с ней?Если так, как я могу это сделать?

Ответы [ 3 ]

0 голосов
/ 25 апреля 2018

Флаттер на стороне Android использует Gradle (так же, как и любой другой проект Android).Если у вас есть существующее приложение для Android, вы, вероятно, можете перенести большинство одинаковых настроек из ваших файлов Gradle.

Если вы еще этого не сделали и не имеете системы для управления банками, Я бы не рекомендовал копировать файлы банок непосредственно в ваш проект и, следовательно, в систему контроля версий.

Вместо этого используйте встроенное разрешение зависимостей Gradle.Вы должны быть в состоянии следовать инструкциям по настройке Amazon SDK .Разница в том, что вам придется подключать вызовы к SDK через каналы методов и писать свой собственный код взаимодействия.

0 голосов
/ 02 июля 2018

Да, вы можете.

Вы можете посмотреть документацию по этому вопросу или, если хотите, вы можете увидеть учебник .Это полезно, если вы используете SDK, который предоставляет вам собственный код для Android и iOS, иначе это будет сложно.Удачи!

0 голосов
/ 25 апреля 2018

Если вы еще не запустили проект плагина, создайте его.

Соберите где-нибудь баночки сторонних разработчиков - не помещайте их в проект плагина / android / ... folder.

Откройте проект плагина в вашей IDE - в моем случае IDEA - и добавьте сторонние файлы jar в путь к классам Java.(В IDEA нажмите «Структура проекта» / «Модули» / выберите pluginName _android / вкладка «Зависимости» / зеленый PlusSign / банки или каталоги - и выберите отдельные банки или целую папку. Оставьте область действия как скомпилированную и не проверяйтеexport.)

Реализуйте свой специфичный для Android код на Java (или Kotlin) в pluginproject / android / src / main / java / com / yourcompany .../.../PluginnamePlugin.java, где вы теперь сможете использовать классы, объявленные сторонними jar-файлами.

Добавьте зависимости в gradle, чтобы он компилировался.В pluginproject / android / build.gradle (ПРИМЕЧАНИЕ - есть несколько build.gradles) добавьте это в конце - после раздела android {}

dependencies {
    implementation files('../../../java/someapi/somejar.jar')
}

Путь должен быть относительнымв папку pluginproject / android.Вместо этого вы можете указать целую папку с этим синтаксисом

implementation fileTree(dir: '../../../somewhere/somefolder', include: ['*.jar'])

Запустить пример приложения, представленного в проекте плагина.

Я не уверен, почему невозможно установить сторонние флягискажем, в pluginproject / android / lib, но это вызывает у меня ошибку dex, тогда как оставление их вне папки pluginproject / работает.

IЯ когда-либо использовал только сторонние jar-файлы (без JNI, не создавал свои собственные потоки и т. д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...