2015-12-22 14 views
15

Stworzyłem dwa moduły w jednym projekcie Android, o nazwie x i y.Jak importować klasę z innego modułu w Androidzie?

  1. Moduł x ma klasę Egg (Opakowanie: com.example.x)
  2. Moduł Y posiada klasę Foo (pakiet: com.example.y)

Teraz chcę zaimportować klasa Foo w klasie Egg, dla której napisałem oświadczenie wymienione poniżej w klasie Jajko

Import com.example.y.Foo; 

Foo nie jest obecnie rozpoznawany przez Androida.

Pytania,

Czy możliwe jest importowanie klasy z innego modułu przy użyciu tylko instrukcji import?

Czy muszę utworzyć bibliotekę modułu y, a następnie zaimportować utworzoną bibliotekę do modułu x?

A może rozwiązaniem jest coś innego.

+0

jest 'Foo' publicznego? I 'i' powinno być w małym przypadku w' importu'. –

+0

Czy dodałeś ten moduł do zależności w pliku gradle? – Prudhvi

+0

@prerakSola yes Foo jest publiczne, a ja jest mały. – Palak

Odpowiedz

37

Upewnić się z następujących elementów:

W settings.gradle, trzeba mieć: include ':x', ':y'.

W x/build.gradle, należy dodać y jako zależność:

dependencies { 
     compile project(':y') 
     // other dependencies 
} 
+1

Upewnij się, że utworzyłeś moduł y z biblioteką Android lub zastąp "Zastosuj wtyczkę:" com.android.application "" z "Zastosuj wtyczkę:" com.android.library "" w pliku gradle. – user3269713

+0

Jak mogę polecić mój kod z innego z moich modułów? Mam na myśli 'moduleA', gdzie używam' moduleB' i 'moduleB' używa trzeciego' moduleC', ale kiedy odwołuję klasę z 'moduleC' w' moduleA' (control + click) pokazuje mi to skompilowane ' .class' zamiast mojej klasy '.java' z mojego' moduleC'. Czy masz jakiś pomysł, aby rozwiązać ten problem? Dzięki! – epool

Powiązane problemy