Gdzie Android Studio tworzy mój plik .apk?

103

Odbudowywałem swój projekt od podstaw, więc było z nim wiele problemów. W tej chwili wszystko działa świetnie, z wyjątkiem tego, że kiedy próbuję uruchomić aplikację, pojawia się komunikat „Ścieżka lokalna nie istnieje”. , gdzie lokalna ścieżka wskazuje na ścieżkę: AndroidStudioProjects \ MyProject \ MyProject .. \ build \ production \ MyProject.apk , i rzeczywiście, nie ma pliku .apk w tej lokalizacji, ani w żadnym innym miejscu w systemie plików projektu.

Jednak mogę zbudować aplikację bez żadnych problemów, a uruchomienie gradlew packageDebug daje mi komunikat „ kompilacja powiodła się ”, więc powinno zostać wygenerowane .apks . Moje pytanie brzmi, dokąd zmierzają, a jeśli nie są generowane, dlaczego nie?

Gdzie jest ścieżka kompilacji każdego zestawu modułów? Jestem trochę zdezorientowany, ponieważ Struktura projektu-> Aspekty-> Android-> Ustawienia kompilatora, Struktura projektu-> Moduły-> Ścieżki-> Dane wyjściowe kompilatora, build.gradle i MyProject.iml wydają się mieć coś wspólnego z ścieżki budowania, ale nie do końca rozumiem, jak się one odnoszą

edycja: Wiem, gdzie powinien być , ale go tam nie ma, więc chcę wiedzieć, jak zmienić ścieżkę kompilacji

edycja 2: Z jakiegoś powodu uruchomienie gradlew build tworzy .apks, ale nie tworzy ani nie uruchamia się z poziomu programu

edycja 3: Oto wynik kompilacji gradlew, zauważ, że kompiluje się pomyślnie:

Creating properties on demand (a.k.a. dynamic properties) has been deprecated and is scheduled to be removed in Gradle 2.0. Please read http://gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html for information on the replacement for dynamic properties.
Deprecated dynamic property: "target" on "com.android.build.gradle.LibraryExtension_Decorated@9e9aabc", value: "android-16".
:TwoWayLib:mergeReleaseProguardFiles UP-TO-DATE
:TwoWayLib:packageReleaseAidl UP-TO-DATE
:TwoWayLib:prepareReleaseDependencies
:TwoWayLib:compileReleaseAidl UP-TO-DATE
:TwoWayLib:generateReleaseBuildConfig UP-TO-DATE
:TwoWayLib:mergeReleaseAssets UP-TO-DATE
:TwoWayLib:compileReleaseRenderscript UP-TO-DATE
:TwoWayLib:mergeReleaseResources UP-TO-DATE
:TwoWayLib:processReleaseManifest UP-TO-DATE
:TwoWayLib:processReleaseResources UP-TO-DATE
:TwoWayLib:compileRelease UP-TO-DATE
:TwoWayLib:processReleaseJavaRes UP-TO-DATE
:TwoWayLib:packageReleaseJar UP-TO-DATE
:TwoWayLib:packageReleaseLocalJar UP-TO-DATE
:TwoWayLib:packageReleaseRenderscript UP-TO-DATE
:TwoWayLib:bundleRelease UP-TO-DATE
:Rogue:prepareRogueProjectTwoWayLibUnspecifiedLibrary UP-TO-DATE
:Rogue:prepareDebugDependencies
:Rogue:compileDebugAidl UP-TO-DATE
:Rogue:generateDebugBuildConfig UP-TO-DATE
:Rogue:mergeDebugAssets UP-TO-DATE
:Rogue:compileDebugRenderscript UP-TO-DATE
:Rogue:mergeDebugResources UP-TO-DATE
:Rogue:processDebugManifest UP-TO-DATE
:Rogue:processDebugResources UP-TO-DATE
:Rogue:compileDebug UP-TO-DATE
:Rogue:dexDebug UP-TO-DATE
:Rogue:processDebugJavaRes UP-TO-DATE
:Rogue:validateDebugSigning
:Rogue:packageDebug
:Rogue:assembleDebug
:Rogue:prepareReleaseDependencies
:Rogue:compileReleaseAidl UP-TO-DATE
:Rogue:generateReleaseBuildConfig UP-TO-DATE
:Rogue:mergeReleaseAssets UP-TO-DATE
:Rogue:compileReleaseRenderscript UP-TO-DATE
:Rogue:mergeReleaseResources UP-TO-DATE
:Rogue:processReleaseManifest UP-TO-DATE
:Rogue:processReleaseResources UP-TO-DATE
:Rogue:compileRelease UP-TO-DATE
:Rogue:dexRelease UP-TO-DATE
:Rogue:processReleaseJavaRes UP-TO-DATE
:Rogue:packageRelease
:Rogue:assembleRelease
:Rogue:assemble
:Rogue:check UP-TO-DATE
:Rogue:build
:TwoWayLib:mergeDebugProguardFiles UP-TO-DATE
:TwoWayLib:packageDebugAidl UP-TO-DATE
:TwoWayLib:prepareDebugDependencies
:TwoWayLib:compileDebugAidl UP-TO-DATE
:TwoWayLib:generateDebugBuildConfig UP-TO-DATE
:TwoWayLib:mergeDebugAssets UP-TO-DATE
:TwoWayLib:compileDebugRenderscript UP-TO-DATE
:TwoWayLib:mergeDebugResources UP-TO-DATE
:TwoWayLib:processDebugManifest UP-TO-DATE
:TwoWayLib:processDebugResources UP-TO-DATE
:TwoWayLib:compileDebug UP-TO-DATE
:TwoWayLib:processDebugJavaRes UP-TO-DATE
:TwoWayLib:packageDebugJar UP-TO-DATE
:TwoWayLib:packageDebugLocalJar UP-TO-DATE
:TwoWayLib:packageDebugRenderscript UP-TO-DATE
:TwoWayLib:bundleDebug UP-TO-DATE
:TwoWayLib:assembleDebug UP-TO-DATE
:TwoWayLib:assembleRelease UP-TO-DATE
:TwoWayLib:assemble UP-TO-DATE
:TwoWayLib:check UP-TO-DATE
:TwoWayLib:build UP-TO-DATE

BUILD SUCCESSFUL

Total time: 10.848 secs
Migwell
źródło
1
możliwy duplikat lokalizacji Apk w New Android Studio
Gru
powinno tam być, jak wyjaśnił Alex, albo możesz sprawdzić powyższą odpowiedź.
Gru,
Mój był w ./app/release/app-release.apk
Steve Smith

Odpowiedzi:

155

YourApplication \ app \ build \ output \ apk

Mehdi Boukhechba
źródło
1
To jest nowa lokalizacja.
Krylez,
Dzięki - znalazłem to tam dla Android Studios 1.1
Simon
8
nie ma piekła, w ogóle folderu aplikacji
Shahid Karimi
w nowszej wersji znajduje się w YourApplication \ app \ build \ output \ apk *
.apk
1
Od stycznia '20:YourApplication/android/app/build/outputs/apk/release/app-release.apk
Ben Pritchard
23

Przejdź do pliku projektów AndroidStudio

  1. Wybierz nazwę projektu,
  2. Wybierz aplikację
  3. Wybierz kompilację
  4. Wybierz wyjścia
  5. Wybierz Apk

Znajdziesz tutaj pliki APK aplikacji, jeśli uruchomiłeś aplikację w AVD lub nawet urządzeniu sprzętowym

Manan Gupta
źródło
Dziwne, używam Android Studio 3.2, w katalogu kompilacji, jak wspomniałeś, jest tylko intermediateskatalog, Outputsbrakuje.
Allan Ruin
@AllanRuin czy zbudowałeś pakiet APK?
kelalaka
proszę szczegółowo omówić wspomniane przez Ciebie kroki.
Shubham Arya
19

Po skompilowaniu mojego codew Android Studio znalazłem go tutaj:

~ \ MyApp_Name \ app \ build \ output \ apk \ app-debug.apk

Arsman Ahmad
źródło
18

Powinieneś skompilować swoją aplikację zamiast debugowania procesu. Po prostu wykonaj następujące czynności:

Build -> Build Bundles/APK(s) -> Build APK(s)

wprowadź opis obrazu tutaj

Sajid Khan
źródło
11

Miałem problem ze znalezieniem aplikacji do debugowania. Android Studio 0.8.6 nie pokazał apk ani nawet folderu wyjściowego w project / project / build /. Kiedy sprawdziłem tę samą ścieżkę projektu / projektu / kompilacji / z eksploratora folderów systemu Windows, znalazłem tam folder „output” i plik debugowania w nim.

roshan213
źródło
Explorer dość mocno się zawiesza, jeśli masz tę lokalizację otwartą i
``
Nie mogę uwierzyć, że zmarnowałem tyle czasu tylko dlatego, że zapomniałem o tym tylko dlatego, że Android Studio nie zawsze pokazuje wszystkie katalogi ...
Jon McClung,
9

W przypadku Android Studio:

Jeśli nie utworzyłeś APK przynajmniej raz, możesz nie znaleźć folderu / Outputs / APK. Przejdź do Build in Android Studio, a jedną z trzech ostatnich opcji jest Build APK, wybierz to. Następnie utworzy ten folder, w którym znajdziesz plik APK.

Jonathan
źródło
Wszystkie powyższe nie działały dla mnie, a ten działa. Następnie Build APKpojawi się okno dialogowe z informacją o tym locate, jak wygodnie!
Ng Sek Long
5

Kiedy Gradle buduje twój projekt, umieszcza wszystkie pliki APK w katalogu build / apk. Możesz także po prostu wykonać proste polecenie wyszukiwania rekurencyjnego dla * .apk w katalogu najwyższego poziomu projektu.

Oto lepszy opis ...

http://i.stack.imgur.com/XwjEZ.png

Zobacz pełne zdjęcie na http://i.stack.imgur.com/XwjEZ.png

Alex Fu
źródło
Gdzie jest zdefiniowany ten katalog? Ponieważ nie mogę znaleźć żadnych plików APK w moim projekcie filestsyem
Migwell
Jak w mojej edycji - wiem gdzie to powinno być , ale go tam nie ma, więc może ścieżka wyjściowa jest jakoś zepsuta?
Migwell,
Dodałem to. Jedyną podejrzaną rzeczą jest to, że moja biblioteka TwoWayLib wydaje się budować dwukrotnie. To nie wyjaśnia, dlaczego studio Android nie może budować
apek
Mam też ten sam problem - ani Gradle, ani Android Studio nie tworzą pliku apk.
Richard Russell
5

Mój apk aplikacji znajdował się w tej lokalizacji

C: \ Users \ haseeb_mir \ AndroidStudioProjects \ MyTestApp \ app \ build \ output \ apk \ debug

HaseeB Mir
źródło
3

w systemie Android 3.1.0 Powyżej użyj poniższej ścieżki, aby znaleźć podpisaną wersję APK

home/AndroidStudioProjects/<projedct name>/app/app-release.apk

iw oknach

AndroidStudioProjects\{project name}\app\release\app-release.apk
giveJob
źródło
2

W moim przypadku, aby uzyskać moją kompilację debugowania - muszę wyłączyć opcję Instant Run:

Plik → Ustawienia → Kompilacja, Wykonanie, Wdrożenie → Natychmiastowe uruchamianie i odznacz opcję Włącz natychmiastowe uruchamianie.

Następnie po uruchomieniu projektu - znalazłem moją kompilację w katalogu Application \ app \ build \ output \ appDebug \ apk

fvolodimir
źródło
0

Spójrz na to pytanie .

TL; DR: wyczyść, a następnie skompiluj.

./gradlew clean packageDebug 
alikonda
źródło
1
Podobny problem, ale w moim przypadku uruchomienie tego polecenia powoduje, że kompiluje się raz, ale nadal nie działa z poziomu studia Android.
Migwell,
1
Nadal nie tworzy pliku .apk?
alikonda
0

Gdy masz Android Studio, utwórz podpisany plik APK, którego używa

    <property name="ExportedApkPath" value="$PROJECT_DIR$/PROJNAME/APPNAME.apk" />

wewnątrz workspace.xml, aby dowiedzieć się, gdzie go umieścić. Jeśli jednak ./gradlew assembleReleasego użyjesz , umieści go w PROJNAME / build / apk. Mam ten sam problem. Z jakiegoś powodu moje studio Android nie pokaże mi niczego w podkatalogu apk, więc brakuje apk do wszystkich celów i celów. Ale jeśli szukasz za pomocą Findera, z całą pewnością tam jest.

astryk
źródło
0

Możesz go znaleźć w

project -> app (or your main app module) -> build -> outputs -> apk
Yvgen
źródło