How to add an additional Maven repository to Android Studio build - android-studio

I have added the following to the dependencies part of my app build.gradle
implementation 'org.seleniumhq.selenium:selenium-htmlunit-driver:3.56.0'
But I get the error:
Could not find org.seleniumhq.selenium:selenium-htmlunit-driver:3.56.0.
Searched in the following locations:
- https://dl.google.com/dl/android/maven2/org/seleniumhq/selenium/selenium-htmlunit-driver/3.56.0/selenium-htmlunit-driver-3.56.0.pom
- https://repo.maven.apache.org/maven2/org/seleniumhq/selenium/selenium-htmlunit-driver/3.56.0/selenium-htmlunit-driver-3.56.0.pom
- https://jcenter.bintray.com/org/seleniumhq/selenium/selenium-htmlunit-driver/3.56.0/selenium-htmlunit-driver-3.56.0.pom
Required by:
project :app
So in the project build.gradle file, I added to the repositories section:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
// ADDED THIS 2021 12 17
maven {
url("https://mvnrepository.com")
}
mavenCentral()
}
dependencies {
classpath "com.android.tools.build:gradle:7.0.3"
}
}
I thought this would work because there's a page with selenium-htmlunit_driver_3.56.0 when I navigate there, the domain mvnrepository.com, with my browser.
What I expected was that the specified dependency would be found. Or alternatively, I would get a report that would include another line under "Searched in the following locations:", but adding that maven line to the project build.grade has no effect.
What do I need to do in order for the additional maven repository to be searched? The maven repository that gets pulled-in from the mavenCentral() entry (repo.maven.apache.org/maven2...) does not contain the version of selenium-htmlunit-drive that I'd like to try.
This is using Artic Fox 2020.3.1 Patch 3.
What am I doing wrong?

Artic Fox started using another technique built on depedencyResolutionManagment which introduced this head-scratching situation where the entries in the application-level build.grade file are not searched.
What worked for me in this situation was to go into settings.gradle (not build.gradle and change:
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
to
repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
and for good measure, I put my additional repository into settings.gradle resulting in the following:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) // WAS: FAIL_ON_PROJECT_REPOS
repositories {
google()
mavenCentral()
jcenter() // Warning: this repository is going to shut down soon
maven {url 'https://mvnrepository.com'} // ADDED THIS
}
}
After making these changes, the appropriate artifacts were automatically downloaded by the Android Studio standard build process.

Try it with this URL: https://repo1.maven.org/maven2
The File is available here: Link
mvnrepository.com is only the frontend to search for dependencies, but not the file system with the jar-files themselves.

Related

I can't sync my project to gradle, I have this error "Add google Maven repository and sync project"

I Tried adding these codes in my repositories:
google()
jcenter()
maven {
url 'https://maven.google.com'
}
but even now I can't sync gradle
I had this error when I opened an outdated learning project.
I took these steps to solve my problem:
1. Add google Maven repository and sync project.
2. Do refactor.
3. Update Gradle plugin and sync.
(Optional) 4. If you opened an older project as I did in my example then don't forget to set up compileSdkVersion, minSdkVersion and targetSdkVersion to your installed SDK version in build.gradle(Module:app) file.
In my example, this is my updated build.gradle(Project: "Project_name") file.
My mistake was I was thinking that
classpath 'com.android.tools.build:gradle:4.2.0-alpha13'
in build.gradle, is same as
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
in gradle-wrapper.properties
so please go to project tab in project structure and set android gradle plugin version and gradle version in listbox and sync it again
In the project's build.gradle, modify as follows:
buildscript {
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} // <-- add
//jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
allprojects {
repositories {
google()
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'} // <-- add
//jcenter()
}
}
I hope this help

Why does the build.gradle (Project) disappear when I clone the project from Github in Android Studio 3.4.1?

I create a project, both build.gradle (Project) and build.gradle (Module) are listed in Android folder structure normally, look likes Old Image 1, then I sync the project to remote GitHub in Android Studio 3.4.1.
I clone the project from GitHub in another PC, I find that build.gradle (Project) disappear in Android folder structure in the another PC, look likes New Image 1, but I can find it in Project folder structure, look likes New Image 2. Why? BTW, the clone project can work well.
It seems that Github cause the problem, how can I fix it? Thanks!
Old Image 1
New Image 1
New Image 2
To InsurgentPointerException:
This is project level build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlin_version = '1.3.40'
ext.anko_version = '0.10.8'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Again to InsurgentPointerException:
You can test it by clone from
https://github.com/mycwcgr/aa
You can download the project source code of Android Studio at
https://www.dropbox.com/s/ko8stedl135ohnt/MyTest.zip?dl=0
So it seems like the Developers did that intentionally. IDK there probably used to be some setting for it but now I can't find it. This solution is a (rather lengthy) workaround.
Close the target project
Rename the root project folder
Open the renamed project (Optional)
See that there is build.gradle and app/build.gradle in the the Android View > Gradle Scripts (Optional)
Close back out of the project (Optional)
Do 1 -> 4 again but renaming back to the old project name.

how to fix Gradle project refresh failed

why i'm gonna get this error?, how to fix it, i've tried to follow any intro, but it couldn't get fixed.
Gradle project refresh failed
Error:Could not download artifact 'com.android.tools.build:builder:0.12.2:builder.jar': No cached version available for offline mode
my build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.12.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
thanks for your solution/ideas.
Go to Settings->Build,Execution,Deployment->Gradle. And check Offline Work and try again.
Go to Settings->type gradle in search box and click on the result and uncheck the offline work

Gradle Sync Failure In Android Studio

As soon as I open an Android Studio project, I get a warning saying "Gradle Sync Failed" and this error:
Gradle sync failed: Cause: ch.qos.logback.classic.LoggerContext cannot be cast to org.gradle.internal.logging.slf4j.OutputEventListenerBackedLoggerContext
My build.gradle is:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
I've tried the suggested fixes and a clean install several times to no avail. I have OSX 10.10 with JDK 8 installed. Thanks in advance.
Remove slf4j* jars files from /Library/Java/Extensions.
Use below command to see files in Extensions directory:
ls /Library/Java/Extensions/
See this question and it's answer here
I hope it's helps you.

Can't import Material Design Library in android studio

I read this page, that learn "importing libraries into android studio". but it's doesn't work for me. i do those step for Material Design Library. in Material Design's build.gradle file have:
https://github.com/navasmdc/MaterialDesignLibrary/blob/master/MaterialDesign/build.gradle
when i click on "Sync Project with Gradle Files" it's gives me two error:
Error:(2, 0) Plugin with id 'com.github.dcendents.android-maven' not found.
Error:(3, 0) Plugin with id 'com.jfrog.bintray' not found.
Can any one tell me how to solve those error's?
note: i read this, but don't understand.
If you want to download the Material Design Library and import it without using the gradle method pyus13 mentioned, you need to add the following lines to the MaterialDesign Build.gradle file:
buildscript {
repositories {
mavenCentral()
jcenter()
}
dependencies {
classpath 'com.github.dcendents:android-maven-plugin:1.2'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'
}
}
To find this file, you can double click on the error you get when syncing that looks like this:
Error:(2, 0) Plugin with id 'com.github.dcendents.android-maven' not found.
I also had to add compile project(':MaterialDesign') to the app build.gradle file.
Dont follow the above tutorial, the shown approach is useful when the library has not published as maven or gradle dependency.But as Github page say it is published on maven.
So remove the module or library project completely from your project and use gradle dependency instead.
Just copy this in your app module's build.gradle inside dependencies closure
dependencies {
// YOUR OTHER DEPENDENCIES
compile 'com.github.navasmdc:MaterialDesign:1.+#aar'
}
Sync your project with gradle.
This was kindly answered #pyus13 but I would like to give the complete answer, with the source, github.com/navasmdc/MaterialDesignLibrary#howtouse:
You can use the gradle dependency, you have to add these lines in your
build.gradle file:
repositories {
jcenter()
}
dependencies {
compile 'com.github.navasmdc:MaterialDesign:1.+#aar'
}
The build.gradle you are looking for is in ProjectName\app\src.
Add two dependencies in your Project build.gradle
dependencies {
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
}

Resources