2015-03-16 2 views
8

Все ответы в похожих вопросах рассказывают о manunally editing gradle files. Но я использовал Android Studio для импорта файла AAR и проверил файлы build.gradle, и все они выглядят правильно.Android Studio не может разрешать символы из импортированного модуля AAR

Моя проблема заключается в следующем:

failed imports

Я импортировал ShowCaseView v5.0.0 AAR, но когда я пытаюсь импортировать классы в моем файле Tutorial.java (вы можете увидеть в красном) Android-студия не распознает классы. Единственный импорт, который распознает Android Studio, - com.github.amlcurran.showcaseview.R.

Я также попытался очистить & перестроить проект, а закрыть & снова открыть Android-студию, но это не поможет.

P.S. пожалуйста, игнорируйте отсутствующие файлы XML, как это было до того, как я скопировал их в проект.

Gradle файлы

ShowCaseView-5.0.0> build.gradle:

configurations.create("default") 
artifacts.add("default", file('ShowCaseView-5.0.0.aar')) 

build.gradle мое приложение в:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.2" 

    defaultConfig { 
     applicationId "com.giraffeweather" 
     minSdkVersion 19 
     targetSdkVersion 21 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:21.0.3' 
    compile project(':ShowCaseView-5.0.0') 
} 

build.gradle проекта Android студии:

// Top-level build file where you can add configuration options common to all sub-projects/modules. 

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.1.0' 

     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

Gradle файл настроек settings.gradle:

include ':app', ':ShowCaseView-5.0.0' 
+0

«проверил файлы build.gradle и все они кажутся правильно "- мы не можем помочь вам подтвердить это, так как вы не опубликовали файлы' build.gradle' (и, в данном случае, по-видимому, 'settings.gradle'). Почему вы не просто ссылаетесь на AAR как на артефакт, как показано в [документации библиотеки] (https://github.com/amlcurran/ShowcaseView#project-setup)? – CommonsWare

+0

Я проверил ответы в похожих вопросах против моих файлов build.gradle и settings.gradle, и это то же самое, что и в ответах. Фактически, поскольку Android Studio создала их для меня, я предположил, что с этим не возникнут проблемы. Я не знаю о градиенте или о том, как использовать эту команду 'compile 'com.github.amlcurran.showcaseview: library: 5.0.0''. Я думаю, это то, о чем вы говорите.Я только что переключился с Eclipse ADT на Android Studio, и это первый раз, когда я увидел слово «gradle». Кроме того, мне все равно хотелось бы знать, почему, если я импортирую AAR, я не могу ссылаться на файлы классов, такие как JAR. – Ozzy

+0

«Я проверял ответы в похожих вопросах на мои файлы build.gradle и settings.gradle, и это то же самое, что и в ответах» - это не значит, что мы можем помочь вам с ними, так как мы не можем их видеть , «это первый раз, когда я вижу слово« gradle », - это первая марка в [обзор Android Studio] (http://developer.android.com/tools/studio/index.html). Также есть документация по [включая зависимости] (http://developer.android.com/tools/building/configuring-gradle.html#buildFileBasics), например, к той библиотеке, которую вы ищете. – CommonsWare

ответ

0

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

Для переключения на вытягивать библиотеку из Bintray в JCenter:

Шаг № 1: Заменить compile project(':ShowCaseView-5.0.0') с compile 'com.github.amlcurran.showcaseview:library:5.0.0'

Шаг № 2: Удалить , ':ShowCaseView-5.0.0' из settings.gradle

Шаг 3: Удалите каталог ShowCaseView-5.0.0

+0

Хорошо, это сработало! спасибо :) По-прежнему не понимаю, почему они заставили мастера импортировать AAR, и это не сработает. – Ozzy

+4

@Ozzy: Похоже, что это, возможно, конфликт между текущей версией Android Studio и плагином Gradle для Android 1.1.0: https://groups.google.com/forum/#!topic/adt-dev/1Ho_c8dALQQ – CommonsWare

+1

Я импортирую закрытую исходную библиотеку, которая не публикуется через BinTray или Jcenter, и предоставляется как AAR. У меня такая же проблема, как описано выше. Это решение не работает для меня –

1

Необходимо указать местоположение «ShowCaseView-5.0.0.aar» в файле build.gradle проекта. EG, файл ShowCaseView-5.0.0.aar находится в папке с именем «LIBS» в корневой директории проекта, обновление вы build.gradle файл, чтобы добавить следующее

allprojects { 
    repositories { 
     flatDir { 
      dirs 'libs' 
     } 
    } 
}