Zbuduj niepodpisany plik APK za pomocą Android Studio


271

Tworzę aplikację na Androida za pomocą Android Developer Tool. Teraz wypróbowałem nowy Android Studio, wszystko działa dobrze, jeśli podłączę swój smartfon do komputera i bezpośrednio uruchomię program w Android Studio. Ale teraz chcę przetestować program z innymi smartfonami bez podłączania ich do komputera.

ADT tworzy plik .apk pod „nazwa projektu / bin” za każdym razem, gdy kompilujesz program. Jak ja to widzę w tej chwili Android Studio tego nie robi.

Więc moje pytanie, czy można utworzyć niepodpisany plik .apk w Android Studio?


10
Technicznie rzecz biorąc, potrzebujesz aplikacji podpisanej kluczem debugowania. Apk, który jest faktycznie niepodpisany, zostanie odrzucony przez urządzenie.
Chris Stratton

Do Twojej wiadomości powinniśmy zawsze preferować eksportowanie podpisanych aplikacji, na które odpowiada @Nirmal Dhara. To jest znacznie bezpieczniejsze.
Mukund,

2
@ChrisStratton Czy zawsze będzie to odrzucane?
Sreekanth Karumanaghat

Rozwiązuję to za pomocą tego rozwiązania: stackoverflow.com/a/56201481/8471798
canerkaseler

Odpowiedzi:


325

Poleciłbym zbudować plik APK za pomocą Gradle:

  • Kliknij menu rozwijane na pasku narzędzi u góry (otwórz okno dialogowe „Edytuj konfiguracje uruchamiania / debugowania”)
  • Wybierz „Edytuj konfiguracje”
  • Kliknij „+”
  • Wybierz „Stopień”
  • Wybierz swój moduł jako projekt Gradle
  • W Zadaniach: wprowadź assemble
  • Naciśnij Uruchom

Twój niepodpisany plik APK znajduje się teraz w

ProjectName\app\build\outputs\apk

Aby uzyskać szczegółowe informacje na temat korzystania z programu Gradle, warto skorzystać z tego samouczka: Budowanie za pomocą programu Gradle w Android Studio . Napisałem również post na blogu o tym, jak zbudować niepodpisany APK z Gradle.

Jeśli przeniosłeś projekt z innego środowiska IDE i nie chcesz go ponownie kompilować , możesz znaleźć plik APK, który został już zbudowany w środowisku IDE, z którego się przeprowadziłeś:

  • Jeśli wygenerowałeś projekt za pomocą Android Studio, plik APK zostanie znaleziony w ProjectName/ProjectName/build/apk/...

  • Zaimportowano projekt z środowiska Eclipse: plik powinien znajdować się w tym samym katalogu. Idź do Project- Show in Explorer. Tam powinieneś znaleźć folder bin, w którym znajduje się plik APK.

  • Lokalizacja będzie importowana z IntelliJ ProjectName/out/production/...

Uwaga dodatkowa: Jak wspomniał Chris Stratton w swoim komentarzu:

Technicznie rzecz biorąc, potrzebujesz pliku APK podpisanego kluczem debugowania. APK, który jest faktycznie niepodpisany, zostanie odrzucony przez urządzenie.


1
Tak, zaimportowałem projekt z Eclipse. Ale w moim przypadku folder bin nie jest dotknięty przez Android Studio. Przy odrobinie poszukiwań znalazłem to sam. W moim przypadku .apk znajdował się w „nazwa projektu / poza / produkcja / nazwa projektu /”
klange

Powinno tak być tylko w przypadku, gdy przestawiłeś się z IntelliJ
bpoiss

9
Generuję projekt bezpośrednio w Studio, ale nie ma folderu o nazwie „bin” w żadnym z folderów projektu. W folderze „build” są tylko dwa foldery, a mianowicie „res” i „source”, a nie folder „bin”. czy możesz mi coś teraz zasugerować?
Himanshu Aggarwal

25
Click the dropdown menu in the toolbar at the topTo jest takie ogólne. Jakie menu rozwijane? Jaki pasek narzędzi?
dthree

3
@dziem można kliknąć „Uruchom” na górnym pasku menu i wybrać z menu rozwijanego „Edytuj konfiguracje”
Gema Megantara,

226

Zgodnie z Build Unsigned APK with Gradle możesz po prostu zbudować aplikację z gradle. Aby to zrobić:

  1. kliknij menu rozwijane na pasku narzędzi u góry (zwykle z ikoną Androida i nazwą aplikacji)
  2. Wybierz Edit configurations
  3. kliknij znak plus w lewym górnym rogu lub naciśnij alt+insert
  4. Wybierz Gradle
  5. wybierz swój moduł jako Gradle project
  6. w Tasks:enterassemble
  7. naciśnij OK
  8. naciśnij Graj

Następnie powinieneś znaleźć swój niepodpisany „apk” w katalogu ProjectName\app\build\outputs\apk


1
+ edytuj build.gradle z Androidem {lintOptions {checkReleaseBuilds false abortOnError false} [....]} i działa! dziękuję
Steffi

Dziękuję marcin ... Udało się. Jedną z rzeczy, na które należy zwrócić uwagę, jest to, że nie mogłem znaleźć folderu „Output / apk” w Android Studio. Pojawił się tylko w systemie plików.
Govind

Nie znaleziono zadania „asemblerze” w „bin” projektu głównego.
nVentimiglia,

2. głosowanie. To powinna być poprawna odpowiedź. Miałem ten problem na czystej instalacji studia Android z importem projektu. Musisz przejść przez tę ręczną konfigurację, aby pobrać pliki apk z kompilacji.
rickfoosusa

Działa w wersji 1.5.1, ale w rzeczywistości buduje apki całego projektu, nawet jeśli został wybrany pojedynczy moduł.
sandrstar

94

Chyba najłatwiejszy sposób:

  • Otwórz zakładkę Gradle po prawej stronie
  • Kliknij dwukrotnie YourProject /: app / assemble (or assembleDebug)
  • Znajdziesz apk tutaj
    ... / YourProject / app / build / Output / apk / app-debug.apk

zrzut ekranu


1
Dzięki, znacznie prostsza niż zaakceptowana odpowiedź i pozwala nie budować apk przy każdym uruchomieniu
Irhala

42

wystarczy przejść do BUILD-> Build APK i gotowe


8
+1. BARDZO prosta metoda. BTW, możesz znaleźć wygenerowany APK wAndroidStudioProjects/<APP NAME>/app/build/outputs/apk/debug/app-debug.apk
Spikatrix

tak proste, dziękuję bardzo, działało, doceniam to.
Zeyad,

23

Krok 1 Otwórz studio Android. Kompilacja -> Generuj podpisany APK…. teraz kliknij „Generuj podpisany plik APK”.

wprowadź opis zdjęcia tutaj

Krok 2

wprowadź opis zdjęcia tutaj

Kliknij Utwórz nowy.

Krok 3

Podaj szczegóły i kliknij OK. wprowadź opis zdjęcia tutaj

jks kluczowe szczegóły, wróci do poprzedniego okna.

wprowadź opis zdjęcia tutaj

Kliknij przycisk Dalej i podaj hasło zapisane w kluczu.

Krok 4

wprowadź opis zdjęcia tutaj

Teraz kliknij przycisk Zakończ i poczekaj na zakończenie procesu budowania.

wprowadź opis zdjęcia tutaj

Teraz apk został wygenerowany pomyślnie. Kliknij pokaż w Eksploratorze.

wprowadź opis zdjęcia tutaj

Jeśli potrzebujesz więcej informacji, odwiedź i sprawdź demo na żywo http://javaant.com/how-to-make-apk-file-in-android-studio/#.VwzedZN96Hs


3
Pytanie dotyczy niepodpisanego apk
ravelinx

18

W Android Studio:

  1. Budować

  2. Kompiluj pliki APK

  3. Poczekaj i przejdź do lokalizacji pokazanej w wyskakującym oknie. Po prawej stronie u dołu

wprowadź opis zdjęcia tutaj


14

Tak, możliwe jest utworzenie niepodpisanego .apk w Android Studio!

Podświetl Projekt w Eksploratorze pakietów lub kolumnie projektu, a następnie File- Project Structure- Artifacts- +- Android Application- From module 'your app'a następnie możesz zmienić lokalizację i kilka innych opcji. Dla ułatwienia włączam make on make.


pojawia się komunikat „Udostępnimy interfejs użytkownika, aby później skonfigurować ustawienia projektu. Do tego czasu ręcznie edytuj plik (-y) build.gradle”. Co mam teraz zrobić?
Himanshu Aggarwal

8
a co jeśli nie mam tam żadnych „artefaktów”?
wiewiórka

Naciśnij znak plus w lewym górnym rogu, aby przejść do aplikacji na Androida
CACuzcatlan

jetbrains.com/idea/webhelp/artifacts.html jaki jest sens używania artefaktów? Myślałem, że ma to wygenerować niepodpisany apk debugujący apk itp., Ale wygląda na to, że możesz po prostu przejść do folderu build / apk, aby uzyskać niepodpisany apk, o ile uruchamiasz asemblerelease z menu stopni (przynajmniej w Intellij IDE). Właśnie skonfigurowałem artefakt, ale mam problem z ustaleniem, co naprawdę z nim zrobić. Czy ktoś może pomóc wyjaśnić różnicę i użyć lub skierować mnie we właściwym kierunku?
cjayem13

@ cjayem13 Niektóre projekty nie używają Gradle.
Marc Plano-Lesay

11

Z Android Studio 2.2.3 na OSX właśnie użyłem górnego menu:

Build > Build APK

Otworzył Findera z .apkplikiem. To nie wygeneruje podpisanego pliku APK. W Generate Signed APKrazie potrzeby możesz wybrać z tego samego menu.


Próbowałem wygenerować podpisany plik APK, ale prosi o ścieżkę do magazynu kluczy. Co należy tam podać?
codeinprogress


11

AndroidStudio 3.4


Po Grade Build Runningzakończeniu zobaczysz powiadomienie w prawym dolnym rogu jak.

Kliknij, locatea zobaczysz swój debugowalny APK


10

Po prostu przejdź do Twojej aplikacji \ aplikacja \ kompilacja \ wyjścia \ apk

i skopiuj zarówno na telefon, jak i zainstaluj app-debug.apk


1
czy naprawdę konieczne jest skopiowanie obu plików?
Vahid Ghadiri,

4

Następująca praca dla mnie:

Pozostaw następujące ustawienie puste, jeśli wykonałeś w build.gradle.

signingConfigs {
        release {
            storePassword ""
            keyAlias ""
            keyPassword ""
        }
    }

i wybierz Gradle Task z okna edytora. Wyświetli listę wszystkich smaków, jeśli stworzyłeś.

wprowadź opis zdjęcia tutaj


3

--- Utwórz nową konfigurację w signingConfigs

unsigned {
        //do not sign
    }

--- Utwórz typ kompilacji w buildTypes

unsigned {
        versionNameSuffix '-unsigned'
    }

--- Idź, aby zbudować warianty i wybrać niepodpisany standard. Zbuduj projekt.

--- Przejdź do „Outputs / APK” i znajdź „XXX-unsigned.apk”. Aby sprawdzić, czy nie jest podpisany, spróbuj zainstalować go na urządzeniu - nie powiedzie się.


To nie działa. Musisz nieco inaczej zdefiniować signinigConfig (wzięty ze stackoverflow.com/a/18121401/624109 )signingConfigs{ unsigned{ storePassword = "" keyAlias = "" keyPassword = "" } }
Muzikant

1

Teraz w Android Studio 1.1.0 powinno być:

  1. wybierz Run>Run <your app>
  2. znajdź plik .apk w <your app>\build\outputs\apk

Używam 1.2.1.1, ale twoje podejście nie działa. Muszę stworzyć Grade Zgromadzenie!
programista

0

Android studio tworzy również plik apk za każdym razem, gdy kompilujesz program, po prostu przejdź do folderu obszaru roboczego i znajdź aplikację-> kompilacja-> wyjścia->, a następnie zobaczysz plik apk.


0

Możesz kliknąć menu obok przycisku uruchamiania na pasku narzędzi,

  1. Wybierz „Edytuj konfiguracje”
  2. Kliknij „+”
  3. Wybierz „Stopień”
  4. Wybierz swój moduł jako projekt Gradle
  5. W Zadaniach: wpisz assemble

Teraz naciśnij OK,

wszystko, co musisz teraz zrobić, to wybrać konfigurację z menu i nacisnąć przycisk Uruchom. To zajmie trochę czasu. Twój niepodpisany apk znajduje się teraz w

Project\app\build\outputs\apk

0

Rozwiązuję to!

Przede wszystkim należy dodać te:

defaultConfig { 
 multiDexEnabled true
}

dependencies {
 implementation 'com.android.support:multidex:1.0.3'
}

Następnie kliknij opcję Zbuduj w górnym pasku Android Studio:

Kompilacja > Kompilacja pakietów / APK> Kompilacja APK

Wreszcie masz plik app-debug.apk w:

aplikacja> kompilacja> wyjścia> apk> debugowanie> app-debug.apk

Uwaga : pliki apk, debug, app-debug.apk tworzone automatycznie w pliku wyjściowym przez Android Studio.


0

Kroki tworzenia niepodpisanego pliku APK

Uwaga: technicznie potrzebujesz APK podpisanego kluczem debugowania. APK, który jest faktycznie niepodpisany, zostanie odrzucony przez urządzenie. Zatem Unsigned APK wyświetli błąd, jeśli zainstalujesz urządzenie.


dostałem jego błąd „Nie można ustawić katalogu roboczego procesu na„ C: \ Users \ marad \ .gradle \ daemon \ 5.2.1 \ My Application ”: nie można ustawić bieżącego katalogu (errno 2)”
ass-king jakieś pytanie

0

W przypadku niepodpisanego APK: po prostu ustaw wartość signingConfig na null. Da ci appName-debug-unsigned.apk

debug {
     signingConfig null
}

I buduj z menu Kompiluj. Cieszyć się

W przypadku podpisanego pliku APK:

signingConfigs {
        def keyProps = new Properties()
        keyProps.load(rootProject.file('keystore.properties').newDataInputStream())
        internal {
            storeFile file(keyProps.getProperty('CERTIFICATE_PATH'))
            storePassword keyProps.getProperty('STORE_PASSWORD')
            keyAlias keyProps.getProperty('KEY_ALIAS')
            keyPassword keyProps.getProperty('KEY_PASSWORD')
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.internal
            minifyEnabled false
        }
        release {
            signingConfig signingConfigs.internal
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

plik keystore.properties

CERTIFICATE_PATH=./../keystore.jks
STORE_PASSWORD=password
KEY_PASSWORD=password
KEY_ALIAS=key0
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.