I have an Android Studio app. It has a library dependency (Android-Bootstrap), when I try to sync gradle, it gives me an error:
Configuration with name 'default' not found.
My structure is:
-FTPBackup
-fotobackup
-build.gradle
-Libraries
-Android-Bootstrap
-Settings.gradle
-build.gradle
-Settings.gradle
-Build.gradle
The FTPBackup settings.gradle and build.gradle:
include ':fotobackup'
include ':libraries:Android-Bootstrap',':Android-Bootstrap'
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
allprojects {
repositories {
mavenCentral()
}
}
And the build.gradle inside fotobackup is:
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion '19.0.3'
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
apply plugin: 'android'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v4:+'
compile project (':libraries:Android-Bootstrap')
}
The library is downloaded from https://github.com/Bearded-Hen/Android-Bootstrap and it has build.gradle, settings etc.
whats wrong?
For one, it doesn't do good to have more than one settings.gradle file -- it only looks at the top-level one.
When you get this "Configuration with name 'default' not found" error, it's really confusing, but what it means is that Gradle is looking for a module (or a build.gradle) file someplace, and it's not finding it. In your case, you have this in your settings.gradle file:
include ':libraries:Android-Bootstrap',':Android-Bootstrap'
which is making Gradle look for a library at FTPBackup/libraries/Android-Bootstrap. If you're on a case-sensitive filesystem (and you haven't mistyped Libraries in your question when you meant libraries), it may not find FTPBackup/Libraries/Android-Bootstrap because of the case difference. It's also looking for another library at FTPBackup/Android-Bootstrap, and it's definitely not going to find one because that directory isn't there.
This should work:
include ':Libraries:Android-Bootstrap'
You need the same case-sensitive spec in your dependencies block:
compile project (':Libraries:Android-Bootstrap')
compile fileTree(dir: 'libraries', include: ['Android-Bootstrap'])
Use above line in your app's gradle file instead of
compile project (':libraries:Android-Bootstrap')
In my setting.gradle, I included a module that does not exist. Once I removed it, it started working. This could be another way to fix this issue
If you're getting this error with react native, it may be due to a link to an NPM package that you removed (as it was in my case). After removing references to it in the settings.gradle and build.gradle files, I cleaned and rebuilt and it's as good as new :)
Just a note on this question:
I had this exact error in my React Native app when trying to build to android. All you should have to do is $ npm i.
Case matters
I manually added a submodule :k3b-geohelper
to the
settings.gradle file
include ':app', ':k3b-geohelper'
and everthing works fine on my mswindows build system
When i pushed the update to github the fdroid build system failed with
Cannot evaluate module k3b-geohelper : Configuration with name 'default' not found
The final solution was that the submodule folder was named k3b-geoHelper not k3b-geohelper.
Under MSWindows case doesn-t matter but on linux system it does
I had this issue with Jenkins. The cause: I had renamed a module module to Module. I found out that git had gotten confused somehow and kept both module and Module directories, with the contents spread between both folders. The build.gradle was kept in module but the module's name was Module so it was unable to find the default configuration.
I fixed it by backing up the contents of Module, manually deleting module folder from the repo and restoring + pushing the lost files.
The message is a known Gradle bug. The reason of your error is that some of your gradle.build files has no apply plugin: 'java' in it. And due to the bug Gradle doesn't say you, where is the problem.
But you can easily overcome it. Simply put apply plugin: 'java' in every your 'gradle.build'
I also faced the same problem and the problem was that the libraries were missing in some of the following files.
settings.gradle, app/build.gradle, package.json, MainApplication.java
Suppose the library is react-native-vector-icons then it should be mentioned in following files;
In app/build.gradle file under dependencies section add:
compile project(':react-native-vector-icons')
In settings.gradle file under android folder, add the following:
include ':react-native-vector-icons' project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android')
In MainApplication.java, add the following:
Import the dependency: import com.oblador.vectoricons.VectorIconsPackage;
and then add: new VectorIconsPackage() in getPackages() method.
I am facing same problem, I was fixed it by generating gradle project and then adding lib project to android studio
First, See build.gradle file is present in project root directory
if not then, Create gradle project,
export your required lib project from eclipse then (File->Export->Android->generate Gradle build file
Click on Next->Next->Select your lib project from project listing->Next->Next->Finish
See build.gradle file present in your project root directory
Move this project to Android Studio
Your module name must be camelCase eg. pdfLib. I had same issue because I my module name was 'PdfLib' and after renaming it to 'pdfLib'. It worked.
The issue was not in my device but in jenkins server. So, check and see if you have such modulenames
Step.1
$ git submodule update
Step.2
To be commented out the dependences of classpass
You are better off running the command in the console to get a better idea on what is wrong with the settings. In my case, when I ran gradlew check it actually tells me which referenced project was missing.
* What went wrong:
Could not determine the dependencies of task ':test'.
Could not resolve all task dependencies for configuration ':testRuntimeClasspath'.
Could not resolve project :lib-blah.
Required by:
project :
> Unable to find a matching configuration of project :lib-blah: None of the consumable configurations have attributes.
The annoying thing was that, it would not show any meaningful error message during the import failure. And if I commented out all the project references, sure it let me import it, but then once I uncomment it out, it would only print that ambiguous message and not tell you what is wrong.
before updating to AS and Gradle 3.0, I had created a separate java module in my android project to run tests. It had its own build.gradle and run configurations. It used to work perfectly until I upgraded to gradle 3. Now, when I try to compile it gives me the following error :
Error:Gradle: A problem occurred configuring root project 'RUN'.
Could not resolve all files for configuration ':classpath'.
Could not find com.android.tools.build:gradle:3.0.0.
Searched in the following locations:
https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.pom
https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.jar
http://dl.bintray.com/sergiocasero/maven/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.pom
http://dl.bintray.com/sergiocasero/maven/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.jar
Required by:
project :
The build.gradle file for the module is the following :
apply plugin: 'application'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'joda-time:joda-time:2.9.4'
compile 'commons-validator:commons-validator:1.6'
}
sourceCompatibility = "1.7"
targetCompatibility = "1.7"
This file was created using the AS wizard.
I do not understand why gradle is looking for the android build tools when building a java project. Anyone have any idea how I can get my module to compile? Thanks.
If the project has 1+ Android modules, the classpath request to load the Android Plugin for Gradle will be in the project-level build.gradle file, and the contents of that file is used even for non-Android modules.
If you add google() to both repositories closure, you will be able to load this plugin. As a side benefit, you will also be able to start using the newer versions of the various Google libraries in your Android modules (e.g., com.android.support artifacts), which also come from Google's Maven repo.
I'm using Dagger 2 (first time user of the DI library) with Android Studio (AS 2.1.2 - SDK 24), and obviously my first thought is "What dependencies do I need in order to use it?"
Having looked at examples I can see that you need in the top level build.gradle file you need a annotation processor plugin:
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
Now the dependencies in the Module level build.gradle apply the apt plugin for the Module so I end up with something like:
apply plugin: 'com.neenbedankt.android-apt'
// other generic settings - android / buildTypes etc.
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
.
.
compile 'com.google.dagger:dagger:2.6'
apt 'com.google.dagger:dagger-compiler:2.6'
provided 'javax.annotation:jsr250-api:1.0'
}
PROBLEM
I have been using, for sometime, the Jack Tool Chain and Java 8 in my projects and found out the above configuration is incompatible with Jack.
Having researched what I needed in order for Jack and Dagger 2 to cooperate I changed the following:
gradle-wrapper.properties :
Changed to :
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
build.gradle (Top Level)
Changed to:
classpath 'com.google.guava:guava:19.0' // added after getting NoSuchMethod Error - it solved the issue
classpath 'com.android.tools.build:gradle:2.2.0-alpha7'
build.gradle (Module Level)
Changed to:
compile 'com.google.dagger:dagger:2.6'
annotationProcessor 'com.google.dagger:dagger-compiler:2.6'
With these changes I was able to use the Jack Tool Chain, and build a small project. However without changing any code I started having trouble with my Component creation - in a simple line of code : testComponent = DaggerTestComponent.builder().build(); the word DaggerTestComponent became red (obviously the Dagger 2 library wasn't working as it should). I managed to resolve the error by a good old invalidate caches, clean and rebuild. However I have been plagued with random errors each time I try and build the small test project - I have managed a couple times to run the app (and it works as expected), but obviously it is quite temperamental.
QUESTION
So the question, and I apologise for it taking this long, but thought that all of the above was relevant,
Is there a more 'Stable' setup than what I'm using at the moment? Has anyone else encountered these problems?
Obviously I don't have to use the Jack tool chain and Java 8, but I'd rather not compromise if I don't have to!
How can I use an application from another project as a library, when that application depends on a library that I am already using?
Here’s what I have:
MyProject
app
libraries
ExoPlayer
demo
library
Here's my current configuration as it pertains to this.
demo/build.gradle:
apply plugin: 'com.android.application'
...
dependencies {
compile project(':library')
}
library/build.gradle:
apply plugin: 'com.android.library'
MyProject/settings.gradle:
include ':libraries:ExoPlayer:library'
MyProject/app/build.gradle:
dependencies {
compile project(':libraries:ExoPlayer:library')
}
As you can see I’m using ExoPlayer library as a library (go figure) but I want to use demo application as a library as well (specifically for the DemoPlayer, I don't want the activities). But demo also has a dependency on library. What do I have to put in my gradle files to achieve this?
I tried to follow the library setup and apply it to demo but it broke the demo build:
Project with path ':library' could not be found in project ':libraries:ExoPlayer:demo'
I have tried following other similar threads such as this one but with no success.
I appreciate any help.
A long time ago I've use Exoplayer as a library project but it's not needed anymore : you can use gradle dependencies :
compile 'com.google.android.exoplayer:exoplayer:r1.4.2'
If you want to persist with library project, you will have to check your settings.gradle where all Android Studio referenced module are in. This file contain the name of module as you will use it after.
Example : (based on AndroidVuMeter)
settings.gradle
include ':app', ':vumeterlibrary'
project structure
Project/
app/
vumeterlibrary/
To use vumeterlibrary you will have to use compile project(':vumeterlibrary') in your app build.gradle
I am trying to add a library dependency from my Android Studio for below:
'com.google.android.gms:play-services-analytics:7.5.0'
However, I couldn't find the package.I even searched for it on search.maven.org but couldn't find it.However in the google docs it is mentioned :developers.google.com/android/guides/setup Can someone point the mistake I am doing?Meanwhile I acheived my task using this link
To make the Google Play services APIs available to your app:
Open the build.gradle file inside your application module directory.
Add a new build rule under dependencies for the latest version of play-services.
apply plugin: 'com.android.application'
dependencies {
compile 'com.google.android.gms:play-services:7.5.0'
compile 'com.google.android.gms:play-services-analytics:7.5.0'
}
Be sure you update this version number each time Google Play services is updated.
3.Save the changes and click Sync Project with Gradle Files in the toolbar.