Подтвердить что ты не робот

Шаги по созданию SignalR в Android Studio

Я пытаюсь привести SignalR в проект Android Studio.

Я успешно выполнил учебник по начинающему с SignalR, так что теперь у меня есть рабочий Hub. Клиент в этом учебнике - это javascript, и я получил его нормально на веб-странице (в Chrome) на ПК и на моем Android-телефоне через Wi-Fi в моей домашней локальной сети.

Затем я пошел, чтобы работать с java-клиентом Android. У меня уже был проект приложения Android в Android Studio, в котором я хочу поговорить с тем, что работает Hub как тест, в качестве следующего шага.

Я загрузил официальный Microsoft java-клиент для Android в качестве почтового индекса.

Затем я извлек его и загрузил его как проект в Android Studio. Он строит без ошибок.

Проблема №1: Этот проект дает мне AAR, а не JAR. Я выяснил, как использовать банку в Android Studio, поэтому, если есть способ создать банку на этом этапе, я, вероятно, смогу сделать эту работу.

В этот момент я включил зависимости в свой проект приложения. Readme.md говорит:

Добавьте signalr-client-sdk.jar, signalr-client-sdk-android.jar gson библиотека как зависимость gradle от проекта.

поэтому я старался следовать этому как можно ближе. Здесь из моего build.gradle:

compile 'com.google.code.gson:gson:2.3.1'
compile files('libs/signalr-client-sdk.jar')
compile files('libs/signalr-client-sdk-android-release.aar')

Проблема № 2: импортировав aar в качестве модуля в проект приложения в Android Studio, он все еще не видит необходимого пространства имен, чтобы заставить основной оператор работать. Вот основной оператор (привет мир SignalR в Android, компилятор):

Platform.loadPlatformComponent(new AndroidPlatformComponent());

Сначала он ничего не собирал, затем взял import microsoft.aspnet.signalr.client.Platform; для Platform. Он все еще не имеет понятия, что import для AndroidPlatformComponent, поэтому я застреваю, пока не смогу пройти мимо этого.

Как вы знаете, в Android Studio есть много файлов, и я не хочу просто извергать их здесь, прежде чем я узнаю, какие файлы вы хотите видеть. Я добавлю их в качестве редактирования, если вы скажете мне, какие файлы вы хотите видеть.

4b9b3361

Ответ 1

Ну, вы можете скачать файлы jar из этой ссылки

Шаг 1

Создайте папку libs внутри вашего пакета и просто вставьте эти файлы jar здесь.

enter image description here

Шаг 2

Теперь добавьте "компилировать файлы" внутри зависимостей build.gradle

enter image description here

Теперь после этого нажмите "Синхронизировать проект с Gradle файлом" enter image description here

Шаг 3

Даже после синхронизации и импорта банкомата вы все равно сталкиваетесь с некоторыми ошибками импорта и т.д. Теперь попробуйте недействить кеш и перезагрузите. После нескольких раз это будет нормально и импортирует все классы

enter image description here

Шаг 4

Теперь вы увидите импорт для Platform.loadPlatformComponent(); без проблем

enter image description hereenter image description here

Ответ 2

Я получил эту работу только с Android Studio и файлами проекта GitHub.

Вот что я должен был сделать для потомков.

  • Извлеките zip файл из github
  • Откройте содержимое в Android Studio в качестве отдельного проекта и Сборка. Он производит:
    • signalr-client-sdk-android-debug.aar в java-client\signalr-client-sdk-android\build\outputs\aar
    • signalr-client-sdk.jar в java-client\signalr-client-sdk\build\libs
  • Скопируйте эти 2 файла в папку libs вашего приложения.
  • Войдите в модуль build.gradle и добавьте:
repositories {
    flatDir{
        dirs 'libs'
    }
}
dependencies {
    compile 'com.google.code.gson:gson:2.3.1'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile(name: 'signalr-client-sdk-android-release', ext: 'aar')
}
  1. Инструменты, Android, проект синхронизации с Gradle файлами, и когда это было успешно, я сделал Build.

  2. Затем, наконец, эта строка кода дала мне приглашение ALT + Enter для генерации import для этой строки кода:

Platform.loadPlatformComponent(new AndroidPlatformComponent());

который дал мне:

import microsoft.aspnet.signalr.client.Platform;
import microsoft.aspnet.signalr.client.http.android.AndroidPlatformComponent;

Уф!