Kod "kurczy się", ponieważ po utworzeniu AAR oryginalny kod źródłowy nie jest zawarty w AAR. To tylko kod bajtowy Java.
Następnie, gdy używasz biblioteki AAR w aplikacji. kod źródłowy jest przekształcany z kodu bajtowego. Oryginalne nazwy zmiennych nie są dostępne i mogą występować pewne różnice w stylu kodowania wynikające z optymalizacji kompilatora kodu bajtowego i inne. I oczywiście komentarze nie są zawarte w kodzie bajtowym, ponieważ są przeznaczone dla komputera, a komentarze są dla ludzi.
Tak więc, jeśli używasz biblioteki AAR, jeśli nie chcesz zobaczyć oryginalnego kodu źródłowego podczas debugowania itp., Musisz dostarczyć ją z rocznym rejestrem AAR jako oddzielnym źródłowym plikiem JAR i prawdopodobnie powiedzieć Androidowi Studio, aby używał źródłowego JAR, jeśli nie robi tego automatycznie.
Byłem w stanie zautomatyzować tworzenie źródła JAR w ramach procesu "przesyłania" wygenerowanego pliku AAR/JAR do lokalnego repozytorium Maven. Nie wiem, jaki masz system budowy, więc nie będę wchodził w szczegóły.
Zresztą można dodać do build.gradle moduły męska:
task sourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.srcDirs
}
Następnie należy uruchomić go osobno, gdy chcesz utworzyć/zaktualizować JAR źródło:
Gradle -> Zadania -> Inne -> sourcesJar
Prawdopodobnie istnieje sposób zautomatyzowania zadania, które należy wykonać w ramach zadania assembleRelease
, ale jeszcze nie znam się na programie Gradle.
Źródłowy plik JAR pojawi się w ... \ MyLibrary \ app \ build \ libs \ path.
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