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

При условии Gradle Зависимость AAR не JAR

У меня проблема, когда я пытаюсь включить библиотеку в мой проект под названием ParseLoginUI.

Проблема заключается в том, что вместо компиляции используется предоставленный тег. Я считаю, что предоставленный тег означает, что проект должен предоставить эту зависимость, чтобы библиотека работала, а не эта библиотека, компилируя сами библиотеки.

Итак, в моей Android-библиотеке он ссылается на SDK для Facebook.

 provided 'com.facebook.android:facebook-android-sdk:4.0.1'

Затем в моем мобильном /build.gradle, который является моим основным модулем, я компилирую файлы sdks Facebook так.

compile 'com.facebook.android:facebook-android-sdk:4.0.1'

Я слежу за руководством по установке этой библиотеки, и именно так вы собираетесь это делать. Вот предупреждение, которое я получаю, что мешает мне скомпилировать файл ParseLoginUI/build.gradle (тот, который его предоставляет).

Warning:Project ParseLoginUI: provided dependencies can only be jars. com.facebook.android:facebook-android-sdk:aar:4.0.1 is an Android Library.

Документация для этой библиотеки имеет исправление, которое:

Если вы используете gradle 1.1.0 или выше, вы можете столкнуться "Предупреждение: Project ParseLoginUI: при условии, что зависимости могут быть только баночками. com.facebook.android:facebook-android-sdk:aar:4.0.1 - это Android Library". Это открытая проблема для инструмента сборки android gradle. рабочая область использует gradle 1.0.0.

Достаточно честный, но я не хочу понижать мою версию gradle (в настоящее время v1.2.3) только для решения этой проблемы. Должен быть способ обойти этот или лучший способ сделать это.

Мой вопрос

Как включить SDK Facebook в библиотечный модуль и мой основной модуль?

4b9b3361

Ответ 1

вы уже упоминали, что это открытая проблема в Gradle. Если вы используете ParseLoginUI как библиотечный модуль. Просто измените файл build.gradle в самом ParseLoginUI.

    provided 'com.facebook.android:facebook-android-sdk:4.0.1'
                              to
    compile 'com.facebook.android:facebook-android-sdk:4.0.1'

Ответ 3

В соответствии с этот вопрос, это должно быть возможно с Gradle плагином 1.3.0-beta3. Возможно, вам придется обновить свои инструменты сборки до версии 23.0.0 rc1 или выше.

Ответ 4

После попытки и ошибки я нашел решение...

Прежде всего, AAR означает библиотеку архивов Android, которая не является JAR. Я искал что-то под названием facebook-android-sdk-4.0.1.jar, но не повезло.

Трюк - это скачать код facebook и добавить его в качестве модуля. Выполняя это, отлично работает, и вы можете использовать gradle 1.2.3 с ParseLoginUI.

Перейдите сюда: https://developers.facebook.com/docs/android/downloads

Скачать: https://developers.facebook.com/resources/facebook-android-sdk-4.0.1.zip Декомпрессируйте его.

Перейдите к своему проекту. -Удалить в ParseLoginUI gradle ссылку на Parse

Нажмите кнопку FILE, NEW, IMPORT MODULE.

Выберите папку под названием facebook, которая находится внутри сжатого zip файла.

Вызовите этот модуль facebook-android-sdk-4.0.1.

Теперь добавьте в свой parseloginui зависимость от этого модуля, используя:

compile project(':facebook-android-sdk-4.0.1’)

Вам также нужно скопировать файл из загруженного вами почтового индекса в новую папку модуля, файл gradle.properties. Тот, который имеет:

ANDROID_BUILD_MIN_SDK_VERSION=9

ANDROID_BUILD_TARGET_SDK_VERSION=21

ANDROID_BUILD_TOOLS_VERSION=21.1.2

ANDROID_BUILD_SDK_VERSION=21

Вот и все.

Нажмите SYNCHRONIZE и скрестите пальцы.

Я работал в своем случае через несколько часов, играя с gradle и андроид-студией. Дай мне знать, если получишь. Если у вас есть проблемы с ссылкой (у меня было), используйте FILE, PROJECT STRUCTURE, чтобы правильно добавить ссылки на ваши модули. (Я написал их вручную, и, похоже, это была ошибка в моих ссылках на синтаксический анализ, возможно, один путь или символ, не знаю. Сделайте это, используя пользовательский интерфейс android studio, устраните проблему). BTW, вы можете использовать версию parse в ParseLoginUI и еще одну более новую в своем проекте (я не тестировал ее для версии для facebook).

Это то, что у меня есть в файле ParseLoginUI gradle:

compile 'com.parse.bolts:bolts-android:1.2.0'

compile 'com.android.support:support-v4:22.0.0'

compile project(':facebook-android-sdk-4.0.1')

compile files('libs/Parse-1.9.1.jar')

compile files('libs/ParseFacebookUtilsV4-1.9.1.jar')

И это то, что у меня есть в приложении gradle:

compile 'com.google.android.gms:play-services:7.5.0'

compile project(':facebook-android-sdk-4.0.1')

compile 'com.parse.bolts:bolts-android:1.2.0'

compile files('libs/Parse-1.9.2/Parse-1.9.2.jar')

compile files('libs/Parse-1.9.2/ParseFacebookUtilsV4-1.9.2.jar')

compile project(':ParseLoginUI’)

Примечание. Я использую gradle версию 2.4 и версию Android 2.3.3 для Android. Selct, что в FILE, ПРОЕКТНАЯ СТРУКТУРА, ПРОЕКТ.

Удачи.

Ответ 5

Вы можете попробовать этот синтаксис:

(name: "", ext: 'aar')

Убедитесь, что ваш основной файл build.gradle имеет путь или maven repo для пакета aar, который вы хотите предоставить.

Ответ 6

вместо этого

  • Clone ParseLoginUI от здесь

  • Импортируйте ParseLoginUI в качестве модуля и включите их в gradle

    compile project(':ParseLoginUI')
    compile 'com.facebook.android:facebook-android-sdk:4.0.1'
    

Надеюсь, что это поможет

Ответ 7

У меня была эта проблема с каллиграфией (github.com/chrisjenx/Calligraphy) и gradle 2.3.3. Я изменил репозиторий от jcenter() до mavenCentral(), и теперь это нормально!