2015-03-16 24 views
8

Wszystkie odpowiedzi w podobnych pytaniach mówią o ręcznym edytowaniu plików gradle. Ale użyłem Android Studio do zaimportowania pliku AAR i sprawdzenia plików build.gradle i wszystkie wydają się poprawne.Android Studio nie może rozpoznać symboli z zaimportowanego modułu AAR

Mój problem jest taki:

failed imports

mam importowane FotowitrynieZobacz v5.0.0 AAR ale gdy próbuję zaimportować klas w moim pliku Tutorial.java (widać na czerwono) Android Studio nie rozpoznaje klas. Jedyny import rozpoznawany przez Studio Android to com.github.amlcurran.showcaseview.R.

Próbowałem również wyczyścić & odbudować projekt i zamknąć & ponownie otworzyć Android Studio, ale to nie pomaga.

P.S. proszę zignorować brakujące pliki XML, tak jak przed skopiowaniem ich do projektu.

Gradle plików

FotowitrynieZobacz-5.0.0> build.gradle:

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

moja aplikacja za 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 projektu Android Studio:

// 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 plik ustawień settings.gradle:

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

„zaznaczone pliki build.gradle i wszystkie one wydają poprawne "- nie możemy ci pomóc potwierdzić tego, ponieważ nie opublikowałeś plików' build.gradle' (iw tym przypadku najwyraźniej 'settings.gradle'). Dlaczego nie odwołujesz się do AAR jako artefaktu, jak pokazano w [dokumentacji biblioteki] (https://github.com/amlcurran/ShowcaseView#project-set-up)? – CommonsWare

+0

Sprawdziłem odpowiedzi w podobnych pytaniach na moje pliki build.gradle i settings.gradle, i to tak samo, jak w tych odpowiedziach. W rzeczywistości, ponieważ Android Studio je dla mnie opracował, założyłem, że nie będzie z tym żadnych problemów. Nie wiem o gradle ani o tym, jak korzystać z polecenia 'compile 'com.github.amlcurran.showcaseview: library: 5.0.0'' - Myślę, że właśnie o to ci chodzi.Właśnie przełączyłem się z Eclipse ADT na Android Studio i po raz pierwszy widziałem słowo "gradle". Poza tym nadal chciałbym wiedzieć, dlaczego jeśli importuję AAR, nie mogę odwoływać się do plików klas, takich jak JAR. – Ozzy

+0

"Sprawdziłem odpowiedzi w podobnych pytaniach na moje pliki build.gradle i settings.gradle, i to jest to samo, co w tych odpowiedziach" - nie oznacza to, że możemy im pomóc, ponieważ nie możemy ich zobaczyć . "po raz pierwszy widzę słowo" gradle "" - jest ono na pierwszej pozycji w [Omówieniu Android Studio] (http://developer.android.com/tools/studio/index.html). Dostępna jest również dokumentacja dotycząca [w tym zależności] (http://developer.android.com/tools/building/configuring-gradle.html#buildFileBasics), na przykład biblioteki, której szukasz. – CommonsWare

Odpowiedz

0

Znam około zera ludzi, którzy importować AAR plików w ten sposób, a ja nie mam pojęcia, czy to jeszcze działa poprawnie. Twoje wyniki sugerują, że tak nie jest.

Aby przełączyć się na pociągnięcie bibliotekę z Bintray za JCenter:

Krok 1: Wymień compile project(':ShowCaseView-5.0.0') z compile 'com.github.amlcurran.showcaseview:library:5.0.0'

Krok 2: Usuń , ':ShowCaseView-5.0.0' od settings.gradle

Krok 3: Usuń katalog ShowCaseView-5.0.0

+0

OK, to działało! dzięki :) Nadal nie rozumiem, dlaczego utworzyliby czarodzieja do importowania AAR i to nie działa. – Ozzy

+4

@Ozzy: Wygląda na to, że może to być konflikt między bieżącą wersją Androida Studio a wtyczką Gradle dla Androida 1.1.0: https://groups.google.com/forum/#!topic/adt-dev/1Ho_c8dALQQ – CommonsWare

+1

Importuję zamkniętą bibliotekę źródłową, która nie jest publikowana przez BinTray lub Jcenter i jest dostarczana jako AAR. Mam taki sam problem, jak wyjaśniono powyżej. To rozwiązanie nie działa dla mnie –

1

Musisz podać lokalizację "ShowCaseView-5.0.0.aar" w pliku build.gradle projektu. EG, plik FotowitrynieZobacz-5.0.0.aar znajduje się w folderze o nazwie „libs” pod głównym katalogu projektu, zaktualizuj ty build.gradle pliku dodać następujące

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