Reputation: 501
i am new to android development, i started developing from scratch on a project i bought online, following the documentation, i encountered a error saying No variants found for 'app'. Check build files to ensure at least one variant exists.
Here is the build.gradle code
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
buildToolsVersion "29.0.1"
defaultConfig {
applicationId "com.app-10.app"
minSdkVersion 23
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.vectordrawable:vectordrawable:1.0.1'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
// Third Party Libraries
//Glide library for image fetching from the web
implementation 'com.github.bumptech.glide:glide:4.9.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
//Material library for styling blocks
implementation 'com.google.android.material:material:1.0.0'
// Google Gson
implementation 'com.google.code.gson:gson:2.8.5'
// Retrofit
implementation 'com.squareup.retrofit2:retrofit:2.6.1'
implementation 'com.squareup.retrofit2:converter-gson:2.6.1'
// Android-SpinKit
implementation 'com.github.ybq:Android-SpinKit:1.4.0'
implementation files('libs/YouTubeAndroidPlayerApi.jar')
// gotev/android-upload-service
implementation "net.gotev:uploadservice:3.5.2"
//A fast circular ImageView perfect for profile images
implementation 'de.hdodenhof:circleimageview:3.0.1'
implementation 'org.apache.commons:commons-io:1.3.2'
}
Upvotes: 50
Views: 114263
Reputation: 41
In my case I have enabled kotlin-kover library for test coverage, After creating build variants I forgot to change the report variant name so I got this error. Once I changed it to the available variant it worked. Previous it was
androidReports("debug") { .. }
then I changed to
androidReports("QADebug") { ... }
and it worked. Hope it helps!
Upvotes: 0
Reputation: 1
tested:
namespace "com.example.xxx"
required for aar submodule in build.gradle.namespace "com.example.xxx"
should be
removed from aar submodule's build.gradle, while package "com.example.xxx"
should be added to AndroidManifest.xml.Upvotes: 0
Reputation: 1919
Here are few things you can check :
settings.gradle
file or build.gradle
, check if that needs any environment variables, if so feed the env variable on your system, or hardcode the env variable in settings.gradle
file or build.gradle
in order to run the code.Upvotes: 1
Reputation: 570
For some reason, gradle throws such error when you are trying to import the jar file while there is no jar file or the "libs" folder itself.
Upvotes: 0
Reputation: 1315
The Gradle Sync always gives error No variants found for 'app'. Check build files to ensure at least one variant exists.
When running ./gradlew build
It gives new error Installed Build Tools revision 31.0.0 is corrupted. and build-tool 31.0.0 is missing dx
So, if the SDK version is 31, that could be the error.
https://stackoverflow.com/a/68430992 fixed for me. The soln was to rename d8 to dx.
Upvotes: 2
Reputation: 99
The key reason is that the gradle didn't recognize the application module (opposite to library module ect.) due to some errors in the build.gradle.
The solution is to find out what errors happened in the project build.gradle file.
select the option [open module settings].
check whether the module configuration is correct, including compile SDK version \ Build Tools Version \ Source Compatibility \ Target Compatibility.
correct the configuration and manually sync again.
ensure the compile SDK version has been downloaded to local from SDK manager.
Upvotes: 0
Reputation: 413
I change gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
to
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-bin.zip
build & install success
Upvotes: 0
Reputation: 399
In build.gradle file in dependencies section I changed
if (enableHermes) {
def hermesPath = "../../node_modules/hermes-engine/android/";
debugImplementation files(hermesPath + "hermes-debug.aar")
releaseImplementation files(hermesPath + "hermes-release.aar")
} else {
implementation jscFlavor
}
to
if (enableHermes) {
implementation("com.facebook.react:hermes-engine:+") {
exclude group: 'com.facebook.fbjni'
}
} else {
implementation jscFlavor
}
Upvotes: 1
Reputation: 1
I had the same error, after an AGP upgrade, solded it by selecting arm64 in active ABI:build variant screenshot
No idea why that was on 'x86' after AGP upgrade.
Upvotes: 0
Reputation: 181
In my case, it is because I add flavourDimensions
and not adding it to any productFlavors
example from my case I have in my build.gradle
in app level:
flavorDimensions "stage", "mode"
and my productFlavors
:
productFlavors {
dev {
dimension "stage"
//noinspection DevModeObsolete
minSdkVersion 21
versionNameSuffix "-dev"
applicationIdSuffix '.dev'
resConfigs "en", "xxhdpi"
}
prod {
dimension "stage"
minSdkVersion 21
versionNameSuffix "-prod"
applicationIdSuffix '.prod'
}
}
As you can see here, I don't use flavorDimensions
"mode" in any of my productFlavors
's dimension
. So, when I try to sync my gradle. It gives me that error.
So my solution here is to remove "mode"
from flavorDimensions
Upvotes: 9
Reputation: 73
For me the issue was that I hadn't opened the project at its root folder, I'd opened the "app" folder. Both folders had the gradle icon so it was an easy mistake to make after not having done any Android development for a while.
Upvotes: 2
Reputation: 11018
You may get the "No variants found" error in a project with multiple modules, when build types do not match between modules.
In my case, this happened when trying to add a macrobenchmark to an existing Android project.
Following the instructions in this document, I added a new module macrobenchmark
to the project.
At some point, I misinterpreted the instructions: I added a new build type benchmark
to the build.gradle
of module app
, but did not add the same build type to the build.gradle
of module macrobenchmark
.
From then on, any attempt to sync the project with the gradle files would fail with the following error message:
No variants found for 'macrobenchmark'. Check build files to ensure at least one variant exists.
The solution was simple (but not trivial): bring the build types back in sync. In my case, add the missing build type benchmark
to the build.gradle
of module macrobenchmark
.
Upvotes: 3
Reputation: 504
Might help someone, in my case, I just needed to update Gradle.
A warning popped up on Android Studio, so I updated it, and then worked properly 🤷🏻♀️
Upvotes: 2
Reputation: 121
go to the SDK manager (Ctrl+Shift+A then write SDK manager), install the android version of current project, in this case I installed all the available options starting from 5.0
Upvotes: 6
Reputation: 4959
I replaced from:
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
to my Android Studio v3.0.1 in my case:
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
but at the end i resolve it by
you need to detect and set your proper sdk
my sdk is 30.0.2 after i install 29.0.2 this error gone
Upvotes: 4
Reputation: 838
I have just solved the same issue like this:
Tools -> SDK Manager
Verify that the SDK platform package for Android 10.0 (the one with API level 29, like you defined in your gradle file) is checked. If not, check it and apply changes. Accept the licence terms, install the package and then File -> Sync Project with Gradle Files (or open the project again)
Upvotes: 83