Створіть неподписаний файл APK за допомогою Android Studio


271

Я розробляю додаток для Android за допомогою Android Developer Tool. Зараз я спробував нову Android Studio, все працює добре, якщо підключити свій смартфон до ПК та безпосередньо запустити програму в Android Studio. Але тепер я хочу протестувати програму з іншими смартфонами, не підключаючи їх до мого ПК.

ADT створює файл .apk під "ім'ям проекту / кошика" кожного разу при складанні програми. Як я бачу це в той момент, коли Android Studio цього не робить.

Тож моє запитання, чи можна створити неподписаний .apk файл за допомогою Android Studio?


10
Технічно те, що ви хочете - це apk, підписаний ключем налагодження. Пристрій, який фактично не підписаний, буде відхилений пристроєм.
Кріс Страттон

FYI, нам завжди слід віддавати перевагу підписаним програмам, на які відповів @Nirmal Dhara. Це набагато безпечніше.
Мукунд

2
@ChrisStratton Чи завжди буде відмовлено?
Sreekanth Karumanaghat

Я вирішити з цим рішенням: stackoverflow.com/a/56201481/8471798
canerkaseler

Відповіді:


325

Я рекомендую вам створити файл APK за допомогою Gradle:

  • Клацніть спадне меню на панелі інструментів у верхній частині (відкрийте діалогове вікно "Редагувати конфігурації запуску / налагодження")
  • Виберіть "Редагувати конфігурації"
  • Натисніть "+"
  • Виберіть "Gradle"
  • Виберіть модуль як проект Gradle
  • У завданнях: введіть assemble
  • Натисніть Виконати

Зараз ваш непідписаний APK розміщений у

ProjectName\app\build\outputs\apk

Щоб отримати детальну інформацію про використання Gradle, цей підручник добре пройти: Створення будівель за допомогою Gradle в Android Studio . Я також написав допис у блозі про те, як створити неподписаний APK за допомогою Gradle.

Якщо ви перемістили проект з іншого IDE і не хочете його перекомпілювати , ви можете знайти свій файл APK, який вже був вбудований в IDE, з якого ви переїхали:

  • Якщо ви створили Проект за допомогою Android Studio, файл APK знайдеться в ProjectName/ProjectName/build/apk/...

  • Імпортований проект із затемнення: Файл повинен знаходитися в одному каталозі. Перейти до Project- Show in Explorer. Там ви повинні знайти папку bin, в якій знаходиться ваш файл APK.

  • Імпортоване з IntelliJ, місце розташування було б ProjectName/out/production/...

Побічна примітка: Як згадував у своєму коментарі Кріс Страттон:

Технічно те, що ви хочете, це APK, підписаний ключем налагодження. APK, який фактично не підписаний, буде відхилено пристроєм.


1
Так, я імпортував проект із затемнення. Але в моєму випадку Android Studio не торкається папки bin. Трохи шукаючи, я знайшов це моїм власним. У моєму випадку .apk знаходився в "ім'я проекту / вихід / виробництво /
ім'я

Це має бути лише в тому випадку, якщо ви перейшли з IntelliJ
bpoiss

9
Я генерую проект безпосередньо зі Studio, але в жодній із папок проекту немає папки під назвою "bin". А в папці "build" є лише дві папки, а саме "res" і "source", а також папка "bin". Ви можете мені щось запропонувати зараз?
Himanshu Aggarwal

25
Click the dropdown menu in the toolbar at the topЦе так загально. Яке спадне меню? Яка панель інструментів?
dthree

3
@dthree ви можете натиснути «Виконати» у верхній панелі меню та вибрати зі спадного меню «Редагувати конфігурації»
Gema Megantara

226

Згідно з програмою Build Unsigned APK with Gradle, ви можете просто створити свою програму з gradle. Для цього:

  1. натисніть спадне меню на панелі інструментів у верхній частині (як правило, із значком android та назвою програми)
  2. виберіть Edit configurations
  3. натисніть знак плюс у верхньому лівому куті або натисніть alt+insert
  4. виберіть Gradle
  5. виберіть модуль як Gradle project
  6. в Tasks:введітьassemble
  7. натиснути OK
  8. натиснути грати

Після цього ви повинні знайти свій непідписаний 'apk' у каталозі ProjectName\app\build\outputs\apk


1
+ редагувати build.gradle з android {lintOptions {checkReleaseBuilds false abortOnError false} [....]} і це працює! дякую
Стеффі

Дякую Марцине ... Це спрацювало. Одне, що слід помітити, я не зміг знайти папку "outputs / apk" в Android Studio. Він з'явився лише у файловій системі ..
Govind,

Завдання "збирати" не знайдено в кореневому проекті "бін".
nVentimiglia

2-е голосування. Це має бути правильний відповідь. У мене була ця проблема при установці чистої андроїд-студії із імпортом проекту. Вам потрібно пройти цю інструкцію вручну, щоб отримати будь-які apk-файли зі збірки.
rickfoosusa

Він працює в 1.5.1, але фактично створює цілі програми, навіть якщо один модуль був обраний.
sandrstar

94

Найпростіший спосіб, я думаю:

  • Відкрийте вкладку Gradle з правого боку
  • Двічі клацніть YourProject /: app / assemble (або assembleDebug)
  • Ви знайдете apk тут
    ... / YourProject / app / build / outputs / apk / app-debug.apk

скріншот


1
Дякую, набагато простіше, ніж прийнята відповідь, і дозволяє не створювати apk на кожному запуску
Ірхала,

42

просто перейдіть до BUILD-> Build APK і це зроблено


8
+1. ДУЖЕ простий метод. До речі, згенерований APK можна знайти за адресоюAndroidStudioProjects/<APP NAME>/app/build/outputs/apk/debug/app-debug.apk
Spikatrix

настільки ж просто, дякую вам, це спрацювало, оцініть це.
Зеяд

23

Крок 1 Відкрийте студію Android. Build -> Створити підписаний APK…. тепер натисніть «Створити підписаний APK».

введіть тут опис зображення

Крок 2

введіть тут опис зображення

Натисніть Створити нове.

Крок 3

Заповніть дані та натисніть кнопку ОК. введіть тут опис зображення

Основні деталі jks, воно повернеться до попереднього вікна.

введіть тут опис зображення

Клацніть Далі та введіть пароль, який ви зберегли в ключі.

Крок 4

введіть тут опис зображення

Тепер натисніть кнопку Готово і зачекайте, щоб завершити процес створення.

введіть тут опис зображення

Зараз apk згенеровано успішно. Натисніть Показати в Провіднику.

введіть тут опис зображення

Якщо вам потрібно більше деталей, відвідайте та перевірте демонстрацію на веб-сайті http://javaant.com/how-to-make-apk-file-in-android-studio/#.VwzedZN96Hs


3
Питання задає
неподписаний

18

В Android Studio:

  1. Побудувати

  2. Створіть APK-файли

  3. Зачекайте та перейдіть до місця, показаного у спливаючому вікні. З правого нижнього боку

введіть тут опис зображення


14

Так, можна створити неподписаний .apk за допомогою Android Studio!

Виділіть проект у своєму досліднику пакунків або стовпці проекту, а потім File- Project Structure- Artifacts- +- Android Application-, From module 'your app'і тоді ви можете змінити місцеположення та деякі інші параметри. Я дозволяю будувати на марці, просто для зручності.


з'являється повідомлення "Ми надамо інтерфейс для налаштування параметрів проекту пізніше. До цього часу, будь ласка, вручну відредагуйте ваш файл build.gradle." Тепер що мені робити?
Himanshu Aggarwal

8
а що робити, якщо у мене немає ніяких «артефактів»?
білка

Натисніть знак плюс у верхньому лівому куті, і ви можете перейти до програми Android
CACuzcatlan

jetbrains.com/idea/webhelp/artifacts.html в чому сенс використання артефактів? Я думав, що це генерувати неподписаний apk налагодження apk тощо, але здається, що ви можете просто перейти в папку build / apk, щоб отримати неподписаний apk, доки ви не запустите збиранняrelease з меню gradle (принаймні, в Intellij IDE). Я щойно налаштував артефакт, але у мене виникають труднощі з'ясувати, що з ним справді робити. Може хтось, будь ласка, допоможе з’ясувати різницю та скористатися або вказати мені в правильному напрямку?
cjayem13

@ cjayem13 Деякі проекти не використовують Gradle.
Марк Плано-Лесей

11

З Android Studio 2.2.3 на OSX я просто використовував верхнє меню:

Build > Build APK

Він відкрив Finder з .apkфайлом. Це не створить підписаний APK. Ви можете вибрати Generate Signed APKз того самого меню, якщо потрібно.


Я спробував створити підписаний APK, але він запитує ключовий шлях до магазину. Що тут передбачається?
codeinprogress


11

AndroidStudio 3.4


Після Grade Build Runningзавершення ви побачите сповіщення в правому нижньому куті, як-от.

Клацніть на, locateі ви побачите ваш налагоджуваний APK


10

Просто перейдіть до своєї програми \ app \ build \ outputs \ apk

і скопіюйте їх на телефон та встановіть app-debug.apk


1
чи дійсно потрібно копіювати обидва файли?
Вахід Гадірі

4

Наступна робота для мене:

Якщо ви зробили в build.gradle, дотримуйтесь наведених нижче параметрів.

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

і виберіть завдання Gradle у вікні редактора. У ньому буде показано список усіх ароматів, якщо ви створили.

введіть тут опис зображення


3

--- Створіть новий конфігурацію для підписуConfigs

unsigned {
        //do not sign
    }

--- Створення типу збірки в buildTypes

unsigned {
        versionNameSuffix '-unsigned'
    }

--- Перейдіть до створення варіантів і виберіть стандарт без підпису. Створити проект.

--- Перейдіть до "outputs / apk" і знайдіть "XXX-unsigned.apk". Щоб перевірити, чи він не підписаний, спробуйте встановити його на пристрій - ви не зможете.


Це не працює. Ви повинні визначити signinigConfig дещо іншим (взято з stackoverflow.com/a/18121401/624109 )signingConfigs{ unsigned{ storePassword = "" keyAlias = "" keyPassword = "" } }
Muzikant

1

Тепер в Android Studio v1.1.0 має бути:

  1. виберіть Run>Run <your app>
  2. знайти .apk файл у <your app>\build\outputs\apk

Я використовую 1.2.1.1, але ваш підхід не працює. Я повинен створити збори Gradle!
програміст

0

Android студія також створює apk-файл під час кожної компіляції програми, просто перейдіть у папку робочої області та знайдіть додаток-> build-> outputs-> тоді ви зможете побачити файл apk.


0

Ви можете натиснути спадне меню біля кнопки запуску на панелі інструментів,

  1. Виберіть "Редагувати конфігурації"
  2. Натисніть "+"
  3. Виберіть "Gradle"
  4. Виберіть модуль як проект Gradle
  5. У завданнях: введіть збирання

Тепер натисніть добре,

все, що вам потрібно зробити, це тепер вибрати конфігурацію зі спадного меню та натиснути кнопку запуску. Пройде якийсь час. Ваш неподписаний apk зараз знаходиться в

Project\app\build\outputs\apk

0

Я це вирішую!

Перш за все, слід додати:

defaultConfig { 
 multiDexEnabled true
}

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

Після цього слід натиснути " Створити" у верхній панелі Android Studio:

Збірка > Складання пакетів (APK)> Створення APK-файлів

Нарешті, у вас є файл app-debug.apk у:

app> build> outputs > apk> debug> app-debug.apk

Примітка : файли apk, debug, app-debug.apk, створені автоматично у файлах виходів Android Studio.


0

Кроки для створення неподписаного APK

Примітка. Технічно те, що ви хочете, це APK, підписаний ключем налагодження. APK, який фактично не підписаний, буде відхилено пристроєм. Отже, без підпису APK буде створено помилку, якщо ви встановите його на пристрій.


я отримав його помилку "Не вдалося встановити робочу директорію процесу на" C: \ Користувачі \ marad \ .gradle \ daemon \ 5.2.1 \ Моя програма ": не вдалося встановити поточний каталог (errno 2)"
ass-king якесь питання

0

Для безпідписаного APK: просто встановіть підпис підписConfig null. Це дасть вам appName-debug-unsigned.apk

debug {
     signingConfig null
}

І будуйте з меню Build. Насолоджуйтесь

Для підписаного 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'
        }
    }

Файл keystore.properties

CERTIFICATE_PATH=./../keystore.jks
STORE_PASSWORD=password
KEY_PASSWORD=password
KEY_ALIAS=key0
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.