When I try to install an app, there are two possibilities:
- Install existing APK from build folder when I run the
app
- Install APK after performing
clean build
For existing APK in the build folder, the app just works fine. But when I clean the project using Build
-> Clean Project
, and then try to run the app
(i.e. install the app to my emulator or physical device), it shows me error:
The APK file /Users/MyApplicationName/app/build/outputs/apk/app-debug.apk does not exist on disk.
NOTE: This behaviour happens only when I clean the project and not when I have already have a pre-built app APK in my build folder
I've referred to: The APK file does not exist on disk but my point is, when we usually run the app after cleaning the project, we never need to make a build of it, if the APK is not existing in the build folder, it automatically generates and installs the latest one.
Things I've tried:
- Running the app when APK file exists in the build folder (works perfectly fine)
- Running the
Clean Project
-> Running the app (expected is the project would be built and the app would get installed but it shows the above mentioned error!) - Same process of cleaning and running the app after doing
Invalidate Caches/Restart
This issue has been fixed with Android studio 3.1.1 (April 2018) release. Update your android studio to 3.1.1.
Here is there explanation regrading the issue details, cause and solution:
In some cases, when a project created in
Android Studio 3.0 was opened for the first time in Android Studio 3.1, the Gradle-aware Make task was removed from the Before launch area in Run/Debug Configurations.
The result was that projects did not build when the Run or Debug button was clicked, which in turn caused failures such as deployment of incorrect APKs and crashes when using Instant Run.To solve this problem,
Android Studio 3.1.1 adds the Gradle-aware Make task to the run configuration for projects that are missing this entry.
This modification occurs after the first Gradle sync when the project is loaded.Official release notes: https://developer.android.com/studio/releases/index.html#3-1-0
clean your project and run again
If it's not work then
May be bug. You should change Settings.
You should open the
Run/Debug Configurations dialog
& selectRun > Edit Configurations
Make sure,
Gradle-aware Make
is Added in TaskList or not. If not then click+
& select from the options.Note
If you receive
You should Un-Check
INSTANT RUN
.I am already on version 3.1.1 and yet the issue still not resolve despite all those gradle make task configure properly in the setup?
I have solution for your issue. Hope it helps!
Also confirmed by Android Studio on Twitter : https://twitter.com/androidstudio/status/981914632892960768
1) Please edit your app configuration as below.
2) Here you can see your app configuration as below.
3) Here is missing Gradle-aware make attribute in before launch configuration. You can see here.
4) Please add this Gradle-aware Make attribute through this way. Click on + icon and select Gradle-aware Make as seen in this screen.
5) You can add this without writing any task just press OK button and task will be added and now it should look like this. Now apply changes and run your application.
Hope it will solve this old apk installing issue on clean build in new android studio 3.1 issue.
Note : This issue is resolved in new Android Studio 3.1.1 Stable release.
Happy Coding!!