2016-01-27 10 views
11

Mam aplikację na Androida złożoną z wielu projektów. Jednym z tych projektów jest projekt aplikacji, który rozszerza obiekt aplikacji.Gradle poszukuje aar w folderze lib niewłaściwego projektu

Wewnątrz klasy build.gradle dla tego projektu aplikacji dodam inne projekty jako zależności.

Właśnie utworzyłem nowy moduł do przechowywania SDK (aar), którego chcę użyć. Dodałem go również do build.gradle mojego projektu aplikacji.

compile project(':newmodule-thesdk') 

Wewnątrz folderu libs newmodule-thesdk, dodałem plik aar. Nazwiemy to thesdk.aar.

repositories { 
    flatDir { 
     dirs 'libs' 
    } 
} 

dependencies { 
    compile(name:'thesdk-1.0', ext:'aar') 
} 

Gdy próbuję zsynchronizować Gradle, synchronizacja nie powiedzie się, ponieważ thesdk-1.0 nie istnieje w folderze libs mojego app projektu. Dlaczego go tam szuka? Dlaczego nie jest to tylko znalezienie go w projekcie newmodule-thesdk?

+0

W którym build.gradle pan dodać flatDir i zależność AAR? –

+0

@GabrieleMariotti newmodule-thesdk – Andrew

+0

Dlaczego tworzysz moduł do przechowywania .aar? Czy ma inny cel? – meynety

Odpowiedz

3

To wydaje się rozwiązanie problemu wymaga mnie aby wykonać następujące czynności w mój build.gradle mojego projektu aplikacji.

repositories { 
     flatDir { 
      dirs project(':newmodule-thesdk').file('libs') 
     } 
    } 
0

miałem podobny problem i po prostu zmienił moje xxx.aar do xxx-NNaar, w przypadku thesdk.aar do thesdk-1.0.aar a następnie pracował w porządku

+0

To nie jest rozwiązanie, ale bardzo ważne jest sprawdzenie nazw –

0

Po prostu trzeba zmienić kod w ten sposób

dependencies { 
    compile fileTree(include: ['thesdk-1.0.aar'], dir: 'libs') 
} 

Należy pamiętać, że plik powinien istnieć!

0

u może zrobić 2 zbliża

1) Jak już powiedziałem:

repositories { 
     flatDir { 
      dirs project(':newmodule-thesdk').file('libs') 
     } 
    } 

można to zrobić w ten sposób

2) można dokonać nowego projektu Gradle z tym sdk i odwołaj się do starego projektu kodu.

a następnie odwołać stary projekt, gdy u nie chcą zawierać SDK i kiedy chcesz dołączyć SDK odwoływać się do nowego projektu Gradle

Powiązane problemy