2016-08-26 13 views
5

Jest to Guava biblioteka w jednym z naszych Android app projektu, dodane jako zależność czasu kompilacji następująco:Sprawdź, która klasa jest za pomocą API Android bibliotecznych

compile 'com.google.guava:guava:18.0' 

Ta aplikacja kod otrzymaliśmy od 3rd party dostawcy, a teraz nie mamy pojęcia, ile klas w projekcie używa interfejsów API z tej biblioteki.

Czy istnieje szybka metoda/narzędzia w Androidzie Studio, aby wiedzieć, ile klas/plików Java używa interfejsów API z tej biblioteki?

Oczywiście, mógłbym usunąć tę zależność od biblioteki lib z build.gradle, a mój kompilator poinformowałby mnie o wszystkich zajęciach, w których go brakuje, ale szukam narzędzia/wskazówki dla studia Android, aby znaleźć te informacje.

+3

Myślę, że usunięcie zależności jest najlepszym rozwiązaniem. albo możesz znaleźć klasę użytkowania według klasy, która zajmie trochę czasu. LUB możesz * znaleźć w ścieżce * z wyrażeniem regularnym za pomocą "com.google.guava". jako wzorzec przyrostka. – Ankit

Odpowiedz

2

Możesz użyć narzędzia Znajdź narzędzia Android Studio, naciśnij ctrl + shift + F, a pojawi się okno wyszukiwania słowa kluczowego spaceClassspace i można zmienić maskę pliku filtru pliku na * .java, a także możesz ustawić zakres, wybierając jedna z opcji. Teraz liczba zdarzeń może wykonać pracę za Ciebie.

ScreenShot for your reference

+0

Po prostu wpisz "com.google.guava" w polu "Tekst do wyszukania", a wszystkie zmienione pliki java zostaną wymienione na – Kushal

+0

Dobra odpowiedź - prawdopodobnie będziesz musiał zmienić 'Zakres' na' Niestandardowy'/'Projekt i biblioteki', aby zrobić to, OP pyta. Prawdopodobnie istnieje również rozwiązanie wykorzystujące 'grep' –

0

Istnieje opcja ANALIZĖ apk w android studio, gdzie można analizować zajęcia w budowaniu i wiele innych rzeczy. Zobacz poniżej

enter image description here

5

To nie jest całkiem jasne, dlaczego chcesz znaleźć zajęcia. Jeśli chcesz tylko dowiedzieć się, która zależność w twoim projekcie używa Guava, możesz rozważyć jego zamianę, shadowing za pomocą narzędzia takiego jak jarjarlinks lub rozwiązanie konfliktu zależności. Jest proste rozwiązanie. Ponieważ w odpowiedzi na this question i this question można przejść do Terminal w Android Studio i typ:

gradlew app:dependencies 

lub, jeśli używasz Mac/Linux

./gradlew app:dependencies 

notować zależności i transitive dependencies od a podana aplikacja. Wtedy będziesz mógł zobaczyć, które biblioteki w twoim projekcie używają Guawy. Powyższe polecenie wyświetli wynik dla wszystkich zadań, w tym compile i testCompile. Oto próbka wyjścia pod testCompile:

*testCompile* 

+--- junit:junit:4.12 
| \--- org.hamcrest:hamcrest-core:1.3 
+--- org.assertj:assertj-core:1.7.0 
+--- org.robolectric:robolectric:3.1.4 
| +--- org.robolectric:robolectric-annotations:3.1.4 
| +--- org.robolectric:robolectric-resources:3.1.4 
| | +--- org.robolectric:robolectric-utils:3.1.4 
| | | +--- org.ow2.asm:asm:5.0.1 
| | | +--- org.ow2.asm:asm-commons:5.0.1 
| | | | \--- org.ow2.asm:asm-tree:5.0.1 
| | | |   \--- org.ow2.asm:asm:5.0.1 
| | | +--- org.robolectric:robolectric-annotations:3.1.4 
| | | \--- com.google.android.apps.common.testing.accessibility.framewo 
| | |   +--- org.hamcrest:hamcrest-core:1.3 
| | |   +--- org.hamcrest:hamcrest-library:1.3 
| | |   | \--- org.hamcrest:hamcrest-core:1.3 
| | |   \--- com.google.protobuf:protobuf-java:2.6.1 
| | +--- org.robolectric:robolectric-annotations:3.1.4 
| | +--- com.ximpleware:vtd-xml:2.11 
| | \--- com.google.guava:guava:19.0 
| +--- org.robolectric:robolectric-utils:3.1.4 (*) 
| +--- org.robolectric:shadows-core-v23:3.1.4 
| | +--- org.robolectric:robolectric-annotations:3.1.4 
| | +--- org.robolectric:robolectric-resources:3.1.4 (*) 
| | +--- org.robolectric:robolectric-utils:3.1.4 (*) 
| | +--- com.almworks.sqlite4java:sqlite4java:0.282 
| | \--- com.ibm.icu:icu4j:53.1 
| +--- org.ow2.asm:asm:5.0.1 
| +--- org.ow2.asm:asm-util:5.0.1 
| | \--- org.ow2.asm:asm-tree:5.0.1 (*) 
| +--- org.ow2.asm:asm-commons:5.0.1 (*) 
| +--- org.ow2.asm:asm-analysis:5.0.1 
| | \--- org.ow2.asm:asm-tree:5.0.1 (*) 
| +--- org.bouncycastle:bcprov-jdk16:1.46 
| +--- com.ximpleware:vtd-xml:2.11 
| +--- com.thoughtworks.xstream:xstream:1.4.8 
| | +--- xmlpull:xmlpull:1.1.3.1 
| | \--- xpp3:xpp3_min:1.1.4c 
| +--- org.apache.ant:ant:1.8.0 
| | \--- org.apache.ant:ant-launcher:1.8.0 
| \--- org.apache.maven:maven-ant-tasks:2.1.3 
|   +--- org.apache.ant:ant:1.8.0 (*) 
|   +--- classworlds:classworlds:1.1-alpha-2 
|   +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-stable-1 
|   | +--- junit:junit:3.8.1 -> 4.12 (*) 
|   | +--- org.codehaus.plexus:plexus-utils:1.0.4 -> 1.5.15 
|   | \--- classworlds:classworlds:1.1-alpha-2 
|   +--- org.codehaus.plexus:plexus-utils:1.5.15 
|   +--- org.codehaus.plexus:plexus-interpolation:1.11 
|   +--- org.apache.maven:maven-artifact:2.2.1 
|   | \--- org.codehaus.plexus:plexus-utils:1.5.15 
|   +--- org.apache.maven:maven-artifact-manager:2.2.1 
|   | +--- org.apache.maven:maven-repository-metadata:2.2.1 
|   | | \--- org.codehaus.plexus:plexus-utils:1.5.15 
|   | +--- org.codehaus.plexus:plexus-utils:1.5.15 
|   | +--- org.apache.maven:maven-artifact:2.2.1 (*) 
|   | +--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-sta 
|   | +--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 
|   | | \--- org.codehaus.plexus:plexus-utils:1.4.2 -> 1.5.15 
|   | \--- backport-util-concurrent:backport-util-concurrent:3.1 
|   +--- org.apache.maven:maven-model:2.2.1 
|   | \--- org.codehaus.plexus:plexus-utils:1.5.15 
|   +--- org.apache.maven:maven-project:2.2.1 
|   | +--- org.apache.maven:maven-settings:2.2.1 
|   | | +--- org.apache.maven:maven-model:2.2.1 (*) 
|   | | +--- org.codehaus.plexus:plexus-interpolation:1.11 
|   | | +--- org.codehaus.plexus:plexus-utils:1.5.15 
|   | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha- 
|   | +--- org.apache.maven:maven-profile:2.2.1 
|   | | +--- org.apache.maven:maven-model:2.2.1 (*) 
|   | | +--- org.codehaus.plexus:plexus-utils:1.5.15 
|   | | +--- org.codehaus.plexus:plexus-interpolation:1.11 
|   | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha- 
|   | +--- org.apache.maven:maven-model:2.2.1 (*) 
|   | +--- org.apache.maven:maven-artifact-manager:2.2.1 (*) 
|   | +--- org.apache.maven:maven-plugin-registry:2.2.1 
|   | | +--- org.codehaus.plexus:plexus-utils:1.5.15 
|   | | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha- 
|   | +--- org.codehaus.plexus:plexus-interpolation:1.11 
|   | +--- org.codehaus.plexus:plexus-utils:1.5.15 
|   | +--- org.apache.maven:maven-artifact:2.2.1 (*) 
|   | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-sta 
|   +--- org.apache.maven:maven-error-diagnostics:2.2.1 
|   | \--- org.codehaus.plexus:plexus-container-default:1.0-alpha-9-sta 
|   +--- org.apache.maven:maven-settings:2.2.1 (*) 
|   +--- org.apache.maven.wagon:wagon-file:1.0-beta-6 
|   | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) 
|   +--- org.apache.maven.wagon:wagon-http-lightweight:1.0-beta-6 
|   | +--- org.apache.maven.wagon:wagon-http-shared:1.0-beta-6 
|   | | +--- nekohtml:xercesMinimal:1.9.6.2 
|   | | +--- nekohtml:nekohtml:1.9.6.2 
|   | | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (* 
|   | \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) 
|   \--- org.apache.maven.wagon:wagon-provider-api:1.0-beta-6 (*) 
+--- org.robolectric:shadows-support-v4:3.1.4 
| +--- org.robolectric:robolectric:3.1.4 (*) 
| \--- org.robolectric:shadows-core-v23:3.1.4 (*) 
+--- org.mockito:mockito-core:2.2.28 
| +--- net.bytebuddy:byte-buddy:1.5.5 
| +--- net.bytebuddy:byte-buddy-agent:1.5.5 
| \--- org.objenesis:objenesis:2.4 
\--- com.google.guava:guava:19.0 

Widać com.google.guava:guava:19.0 jest zarówno zależność i przechodnia zależność poprzez org.robolectric:robolectric:3.1.4.

W przeciwnym razie, zgodnie z drugą odpowiedzią na tej stronie, można użyć polecenia Find in path w Android Studio.

Okno dialogowe wygląda mniej więcej tak.Należy wybrać Scope jak Project and Libraries:

find in project window in Android Studio

Wynik wygląda mniej więcej tak:

find results window

Można zobaczyć, że znalazł pliki w Roboletric które używają guawy.

Powiązane problemy