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

Как импортировать проект Android в качестве библиотеки и НЕ компилировать его как apk (Android studio 1.0)

Я попытался импортировать проект (projLib) в качестве зависимости для другого проекта (projAPK).

projAPK gradle имеет следующее:

dependencies {
    compile project(':libs:NewsAPI')
    compile project(':projLib')
}

но когда я синхронизирую gradle, он дает эту ошибку:

Ошибка: зависимость Android_2015: projLib: неопределенный в проекте projAPK разрешает архив APK, который не поддерживается как зависимость от компиляции. Файл:/Users/myname/Documents/Development/Android_2015/libs/projAPK/build/outputs/apk/projLib-release-unsigned.apk

поэтому я предполагаю, что есть два решения:

  • каким-то образом make gradle считают, что projLib - это библиотека, которая не должна компилироваться в apk
  • как-то сделать gradle НЕ компилировать projLib явно

Проблема в том, что я не мог найти, как это сделать. Было бы здорово, если вы, ребята, можете помочь:)

4b9b3361

Ответ 1

В файле projLib build.gradle вы увидите инструкцию вроде этого:

apply plugin: 'com.android.application'

который сообщает Gradle о его создании как приложении, генерируя APK. Если вы измените его на это:

apply plugin: 'com.android.library'

он будет создан как библиотека, создавая AAR, и он должен работать.

Если вам нужна projLib для создания отдельного APK, вам нужно будет сделать какой-то рефакторинг, чтобы вытащить общий код, который вам нужен, в третий библиотечный модуль, и оба APK зависят на нем.

Библиотекам не разрешено устанавливать applicationId, поэтому, если вы видите сообщение об ошибке, удалите его из библиотеки script.

Ответ 2

В модуле gradle файл -

Заменить apply plugin: 'com.android.application' на apply plugin: 'com.android.library'

Затем удалить applicationId "xxx.xxx.xxxx"

Очистить и построить

Ответ 3

просто добавьте эти строки в библиотеку gradle и удалите другие разделы

apply plugin: 'com.android.library'

android {
   compileSdkVersion 23
   buildToolsVersion '23.0.2'
}

dependencies {
   compile fileTree(dir: 'libs', include: ['*.jar'])
   compile 'com.squareup.picasso:picasso:2.4.0'
   compile 'com.google.code.gson:gson:2.2.4'
   compile 'com.android.support:appcompat-v7:23.1.1'
   compile 'com.android.support:gridlayout-v7:23.1.1'
  ,...
}