Как добавить и использовать AAR в AndroidStudio Project - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь использовать пользовательский AAR в моем проекте Android. Я нашел десятки примеров в StackOverflow и в Интернете. Многие не смогли построить, никто не работал. Самый чистый был в http://kevinpelgrims.com/blog/2014/05/18/reference-a-local-aar-in-your-android-project/
Это было ближе всего к работе.

Вот что я сделал

  1. Успешно создан очень простой AAR (Ref.aar) из Ref.java

    // Ref.java  
    package com.ramrod.Ref;  
    public class Ref {
        // Square an integer
        public static int
        square(int val) {
            return (val * val);
        }
    }  
    
  2. Создан тестовый проект (RefTest)

  3. Создана папка 'libs' в RefTest / app
  4. Добавлен Ref.aar в библиотеки
  5. Файл-> Новый-> Новый модуль-> Импорт пакета .JAR / .AAR.
  6. Выбранный Ref.jar в качестве имени файла-> Готово (показался успешным).
  7. Модифицированный build.gradle

    // build.gradle (Module: app)  
    
    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 27  
        buildToolsVersion "27.0.3"
        defaultConfig {
            applicationId "com.ramrod.RefTest"
            minSdkVersion 11
            targetSdkVersion 15
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            }
        }
        repositories {
            flatDir {
                dirs 'libs'
            }
        }
        dependencies {
            compile( name:'Ref', ext:'aar' )
       }
    }  
    
  8. Синхронизация build.gradle (все)
  9. Добавлена ​​ссылка на метод Ref.aar (квадрат) для onCreate в основной деятельности RefTest.

    int sq = Ref.square( 2 );
    
  10. Build-> Clean, затем Build-> Rebuild.
    Это привело к ошибке : не удалось найти символьную переменную Ref

Я уверен, что делаю что-то наивное или просто тупое, но я не вижу этого.
Любая помощь приветствуется.

Ответы [ 2 ]

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

Когда вы импортируете AAR из встроенных вспомогательных инструментов, используя опцию Import aar / jar, Студия создает модуль с этим aar.

Итак, в этом состоянии вы можете увидеть нечто похожее на состояние, указанное ниже. Когда панель дисплея Android,

enter image description here

Измените режим панели на Project и откройте свой testaar, вы можете увидеть файл build.gradle для вашего модуля и соответствующий файл aar.

enter image description here

Вот почему ваше заявление

compile( name:'Ref', ext:'aar' )

не работал.

Чтобы добавить этот aar в ваш проект (после использования import aar / jar), вы можете сначала добавить модуль в файл settings.gradle (файл настроек проекта)

include ':app', ':testaar'

затем непосредственно добавьте в свой файл уровня build.gradle приложения

implementation project(':testaar')

2) Другой способ -

Щелкните правой кнопкой мыши по своему прикладному модулю -> выберите «Открыть настройки модуля» -> выберите модуль -> перейдите на вкладку «Зависимости»

P.S. Вы также можете открыть это окно из Build-> Edit Библиотеки и зависимости

Вы увидите окно, как показано ниже

enter image description here

Нажмите на маленькую иконку +, затем опцию Модуль и, наконец, добавьте необходимый модуль (testaar)

enter image description here

Синхронизируйте ваш код и вуаля, теперь он начнет работать.

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

Вы должны:

1) создайте библиотеку aar и просто поместите ее в каталог libs ( без"Файл-> Новый-> Новый модуль-> Импорт .JAR / .AAR Package")

see picture

2) добавить в build.gradle (модуль: приложение)

dependencies {
    ...
    implementation fileTree(include: ['*.aar'], dir: 'libs')
    ...

}

После этого вы можете использовать Ref.square(int);

Ваш апк будет содержать после сборки:

enter image description here

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