Mam dwie aplikacje na Androida, które dzielą ze sobą 90% kodu, a ze względów politycznych (chyba też z przyczyn technicznych) muszę mieć oddzielne nazwy pakietów (aby pojawiały się pod różnymi adresami URL w Google Play)Czy mogę jakoś aliasować R w systemie Android?
Używam gita z dwoma gałęziami dla każdej aplikacji i synchronizuję dwie gałęzie ręcznie przed każdym wydaniem. Po uruchomieniu polecenia diff dwóch gałęzi, wiele moich plików jest różnych, podczas gdy w rzeczywistości jedyną rzeczą, która jest inna, jest nazwa pakietu generowanego automatycznie pliku R, więc dla pierwszej aplikacji mam 15 plików z
import pkg.name.one.R;
i dla innych aplikacji
import pkg.name.two.R;
Chcę jakoś zaimportować R
w ten sam sposób dla obu klas.
Próbowałem owijać R tak:
pakiet thescene;
public class RWrapper {
public class R extends pkg.name.one.R {}
}
(co uczyniłoby RWrapper
jedyny inny plik pomiędzy tymi dwoma oddziałami w odniesieniu do źródła lub R
), ale niestety R
jest ostateczna klasy (i nie jestem nawet pewien, że to będzie już pracował tak)
Czy istnieje sposób na alias klasy R w sposób, który pozwoliłby mi zastąpić import pkg.name.one.R;/import pkg.name.two.R;
ujednoliconą instrukcją importu?
Jestem również otwarty na inne propozycje, które rozwiązać mój nieszczęścia synchronizacji :)
jej lepiej importować 'R w imporcie statement' i usunięcia zbędnych przy użyciu pakietu' CTRL + SHIFT + O' –
Naprawdę nie jest to odpowiedź na twoje pytanie, ale czy umieściłeś duplikat kodu w projekcie bibliotecznym, do którego się odwołujesz z każdej aplikacji, czy te dwie aplikacje są całkowicie rozdzielone i mają 90% ten sam kod? Powinieneś zachować plik R taki, jaki jest, i nie próbować używać tego samego dla obu projektów. – banzai86
Przenieś udostępniony kod do biblioteki Androida. Następnie umieść go w obu aplikacjach. – pawelzieba