ChatGPT解决这个技术问题 Extra ChatGPT

Build unsigned APK file with Android Studio

I'm developing an Android app with the Android Developer Tool. Now I tried the new Android Studio, everything works fine if connect my smartphone with the PC and directly run the program in the Android Studio. But now I want to test the program with other smartphones without connecting them to my PC.

The ADT creates the .apk file under "projectname/bin" every time you compile the program. How I see it at the moment, Android Studio doesn't do that.

So, my question is: Is it possible to create an unsigned .apk file with Android Studio?

Technically, what you want is an apk signed with a debug key. An apk that is actually unsigned will be refused by the device.
FYI we should always prefer exporting signed apps as answered by @Nirmal Dhara. This is much safer.
@ChrisStratton Will it always be refused?
I solve it with this solution: stackoverflow.com/a/56201481/8471798

b
bpoiss

I would recommend you to build your APK file with Gradle:

Click the dropdown menu in the toolbar at the top (Open 'Edit Run/Debug configurations' dialog)

Select "Edit Configurations"

Click the "+"

Select "Gradle"

Choose your module as a Gradle project

In Tasks: enter assemble

Press Run

Your unsigned APK is now located in

ProjectName\app\build\outputs\apk

For detailed information on how to use Gradle, this tutorial is good to go: Building with Gradle in Android Studio. I also wrote a blog post on how to build an unsigned APK with Gradle.

If you moved your project from the other IDE and don't want to recompile, you may find your APK file that was already built in the IDE you moved from:

If you generated the Project with Android Studio, the APK file will be found in ProjectName/ProjectName/build/apk/...

Imported the project from eclipse: File should be in the same directory. Go to Project - Show in Explorer. There you should find the bin folder where your APK file is located in.

Imported from IntelliJ, the location would be ProjectName/out/production/...

Side note: As Chris Stratton mentioned in his comment:

Technically, what you want is an APK signed with a debug key. An APK that is actually unsigned will be refused by the device.


Yes i imported the project from eclipse. But i my case the bin folder isn't touched by the Android Studio. With a bit searching i found it by my self. In my case the .apk was located in "projectname/out/production/projectname/"
This should be only in case if you switched from IntelliJ
I am generating the project directly with Studio but there is no folder named "bin" in any of the folders of the project. And in "build" folder there are only two folders namely "res" and "source" and no "bin" folder. can you suggest me something now?
Click the dropdown menu in the toolbar at the top This is so general. What dropdown menu? What toolbar?
@dthree you can click "Run" on the top menu bar, and select "Edit Configurations" from the dropdown
C
Community

According to Build Unsigned APK with Gradle you can simply build your application with gradle. In order to do that:

click on the drop down menu on the toolbar at the top (usually with android icon and name of your application) select Edit configurations click plus sign at top left corner or press alt+insert select Gradle choose your module as Gradle project in Tasks: enter assemble press OK press play

After that you should find your unsigned 'apk' in directory ProjectName\app\build\outputs\apk


+ edit build.gradle with android { lintOptions { checkReleaseBuilds false abortOnError false } [....] } and it works! thank you
Thank you marcin ... It worked.. One thing to notice is I could not find "outputs/apk" folder in the Android Studio.. It only appeared in the file system..
Task 'assemble' not found in root project 'bin'.
2nd vote. This should be the Correct Answer. I had this problem on a clean android studio install with project import. You have to go through this manual setup to get any apk files from a build.
It works in 1.5.1, but actually build whole project apks even if single module has been selected.
A
Andrew

The easiest way, I guess:

Open Gradle tab on the right side

Double click YourProject/:app/assemble (or assembleDebug)

You'll find the apk here .../YourProject/app/build/outputs/apk/app-debug.apk

https://i.stack.imgur.com/kLe2h.png


Thanks, much simpler than accepted answer, and allows not to build apk at each run
A
Aakash Bansal

just go to BUILD->Build APK and it's done


+1. A VERY simple method. BTW, you can find the generated APK at AndroidStudioProjects/<APP NAME>/app/build/outputs/apk/debug/app-debug.apk
as simple as that, thank you very much, it worked, appreciate it.
L
Linh

AndroidStudio 3.4

https://i.stack.imgur.com/U7DWl.png


After Grade Build Running complete, you will see the notification at bottom-right corner like.

https://i.stack.imgur.com/fzF0c.png

Click on locate and you will see your debuggable APK


N
Nirmal Dhara

Step 1 Open android studio . Build -> Generate Signed APK… . now click on “Generate Signed APK”.

https://i.stack.imgur.com/Mm0dt.jpg

Step 2

https://i.stack.imgur.com/5pZpP.jpg

Click Create new.

Step 3

https://i.stack.imgur.com/Hj29o.jpg

jks key details,It will go back to previous window.

https://i.stack.imgur.com/Ezbxi.jpg

Click Next, and give the password which you stored in key.

Step 4

https://i.stack.imgur.com/szlOt.jpg

Now click Finish and wait to complete the building process.

https://i.stack.imgur.com/VbXY0.jpg

Now apk generated successfully. Click show in Explorer.

https://i.stack.imgur.com/eDvkK.jpg

If you need more details please visit and check the live demo http://javaant.com/how-to-make-apk-file-in-android-studio/#.VwzedZN96Hs


Question asks for unsigned apk
not sure if you understood the question. the question is for unsigned apk not signed.
A
Andrii Kovalchuk

In Android Studio:

Build Build APK(s) Wait and go to the location shown in a pop-up window. On right bottom side

https://i.stack.imgur.com/Nw5RR.png


s
schott12521

Yes, it is possible to create an unsigned .apk with Android Studio!

Highlight the Project in your package explorer or project column, and then File - Project Structure - Artifacts - + - Android Application - From module 'your app' and then you can change the location and some other options. I enable build on make, just for ease.


it is popping up the message "We will provide a UI to configure project settings later. Until then, please manually edit your build.gradle file(s.)" Now what should i do?
and what if I don't have any “Artifacts” there?
Hit the plus sign in the top left and you can get to Android Application
jetbrains.com/idea/webhelp/artifacts.html what is the point of using artifacts? I thought it was to generate an unsigned apk debug apk, etc but it seems as if you can simply go to the build/apk folder to get the unsigned apk so long as you run assemblerelease from gradle menu (at least in intellij IDE). I just configured an artifact but I'm having trouble figuring out what to truly do with it. Can someone please help clarify the difference and use or point me in the right direction?
@cjayem13 Some projects don't use Gradle.
S
Siva Prakash
Build -> Build APK     //unsigned app


Build -> Generate Signed APK  //Signed app

p
pascal

With Android Studio 2.2.3 on OSX I just used the top menu:

Build > Build APK

It opened Finder with the .apk file. This won't generate a signed APK. You can select Generate Signed APK from the same menu if needed.


I tried to generate a signed APK but it is asking for a key store path. What is suppose to be provided there?
W
WhiteWolfza

Just go to Your Application\app\build\outputs\apk

and copy both to phone and install app-debug.apk


is it really necessary to copy both files?
C
CoDe

Following work for me:

Keep following setting blank if you have made in build.gradle.

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

and choose Gradle Task from your Editor window. It will show list of all flavor if you have created.

https://i.stack.imgur.com/XBJPV.png


Q
Qamar

For unsigned APK: Simply set signingConfig null. It will give you appName-debug-unsigned.apk

debug {
     signingConfig null
}

And build from Build menu. Enjoy

For signed 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 file

CERTIFICATE_PATH=./../keystore.jks
STORE_PASSWORD=password
KEY_PASSWORD=password
KEY_ALIAS=key0

s
sharky

--- Create new config in signingConfigs

unsigned {
        //do not sign
    }

--- Create build type in buildTypes

unsigned {
        versionNameSuffix '-unsigned'
    }

--- Go to build variants and chose unsigned standard. Build project.

--- Go to "outputs/apk" and find "XXX-unsigned.apk". To check if it is unsigned try to install it to device - you'll fail.


This does not work. You need to define the signinigConfig a bit different (taken from stackoverflow.com/a/18121401/624109) signingConfigs{ unsigned{ storePassword = "" keyAlias = "" keyPassword = "" } }
J
John Jang

Now in Android Studio v1.1.0 should be:

select Run > Run find .apk file in \build\outputs\apk


I am using 1.2.1.1 but your approach does not work. I have to create a Gradle Assembly!
u
user5649834

Android studio also create the apk file on every time compile the program, just go to your workspace folder and find app->build->outputs-> then you can see the apk file.


C
Chathura Jayanath

You can click the dropdown near the run button on toolbar,

Select "Edit Configurations" Click the "+" Select "Gradle" Choose your module as Gradle project In Tasks: enter assemble

Now press ok,

all you need to do is now select your configuration from the dropdown and press run button. It will take some time. Your unsigned apk is now located in

Project\app\build\outputs\apk

L
Lakshay Sharma

Steps for creating unsigned APK

Steps for creating unsigned APK • Click the dropdown menu in the toolbar at the top • Select "Edit Configurations" • Click the "+" • Select "Gradle" • Choose your module as a Gradle project • In Tasks: enter assemble • Press Run • Your unsigned APK is now located in - ProjectName\app\build\outputs\apk Note : Technically, what you want is an APK signed with a debug key. An APK that is actually unsigned will be refused by the device. So, Unsigned APK will give error if you install in device.

Note : Technically, what you want is an APK signed with a debug key. An APK that is actually unsigned will be refused by the device. So, Unsigned APK will give error if you install in device.


i got his error 'Could not set process working directory to 'C:\Users\marad\.gradle\daemon\5.2.1\My Application': could not set current directory (errno 2)'