Error:Cause: unable to find valid certification path to requested target
AndroidAndroid StudioGradleAndroid Problem Overview
I got the following Error in android Studio 2.2.3 when I sync gradle.
Error:Cause: unable to find valid certification path to requested target
How can I fix this issue
I am Adding my Gradle file also
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.sample.myapplication"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
} } dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
compile 'com.android.support:palette-v7:23.4.0'
testCompile 'junit:junit:4.12'
// FireBase
compile 'com.google.firebase:firebase-messaging:9.0.0'
}//Add this line
apply plugin: 'com.google.gms.google-services'
and the project Level Gradle File
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'com.google.gms:google-services:3.0.0'
}
}
allprojects {
repositories {
mavenCentral()
jcenter{ url "http://jcenter.bintray.com/" }
maven { url "https://jitpack.io" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Android Solutions
Solution 1 - Android
This problem might be due to some restricted internet connections... If you are installing build tools on some restricted network, the required certificates might not install... So try changing the network connection.... Worked for me.....
Solution 2 - Android
I faced the same issue, but fixed it by adding
maven { url "http://jcenter.bintray.com"}
in the project Level Gradle File
buildscript {
repositories {
jcenter()
maven { url "http://jcenter.bintray.com"}
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'com.google.gms:google-services:3.0.0'
}
}
allprojects {
repositories {
mavenCentral()
jcenter{ url "http://jcenter.bintray.com/" }
maven { url "https://jitpack.io" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Solution 3 - Android
"Unable to find valid certification path to requested target"
If you are getting this message, you probably are behind a Proxy on your company, which probably is signing all request certificates with your company root CA certificate, this certificate is trusted only inside your company, so Android Studio cannot validate any certificate signed with your company certificate as valid, so, you need to tell Android Studio to trust your company certificate, you do that by adding your company certificate to Android Studio truststore.
(I'm doing this on macOS, but should be similar on Linux or Windows)
- First, you need to save your company root CA certificate as a file: you can ask this certificate to your IT department, or download it yourself, here is how. Open your browser and open this url, for example, https://jcenter.bintray.com/ or https://search.maven.org/, click on the lock icon and then click on Show certificate
On the popup window, to save the root certificate as a file, make sure to select the top level of the certificates chain (the root cert) and drag the certificate image to a folder/directory on your disk drive. It should be saved as a file as, for example: my-root-ca-cert.cer, or my-root-ca-cert.pem
- Second, let's add this certificate to the accepted Server Certificates of Android Studio:
On Android Studio open Preferences -> Tools -> Server Certificates
,
on the box Accepted certificates
click the plus icon (+
), search the certificate you saved previously and click Apply
and OK
- Third, you need to add the certificate to the Android Studio JDK truststore (Gradle use this JDK to build the project, so it's important):
In Android Studio open File -> Project Structure -> SDK Location -> JDK Location
Copy the path of JDK Location, and open the Terminal, and change your directory to that path, for example, execute:
cd /Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/
(don't forget to scape the whitespace, "\ ")
Now, to import the certificate to the truststore, execute:
./bin/keytool -importcert -file /path/to/your/certificate/my-root-ca-cert.cer -keystore ./jre/lib/security/cacerts -storepass changeit -noprompt
- Finally, restart Android Studio, or better click
File -> Invalidate Caches / Restart
Done, you should be able to build your project now.
Solution 4 - Android
I have faced this problem with Maven build earlier. It was occurring because I was working in a restricted office network. You need to import required certificate in your keystore.
Follow Steps in the answer of below question https://stackoverflow.com/questions/26180650/unable-to-find-valid-certification-path-to-requested-target-but-browser-says
(use double quotes for fienames/pathnames)
Note: I am not able to find now exact source from where I solved problem, if I get it, I will update it
Solution 5 - Android
Import your company certificate at Tools->Android->SDK Manager->Tools->Server Certificates
Solution 6 - Android
I just encountered the similar problem and found a series of steps did help me. Of course few of them is to Change the network to a stronger,better one.or if you have only one network then try Reconnecting to the network and then simply INVALIDATE/RESTART your android studio. If it still shows the error you need to add the "maven" in repositories and point it out to the link as shown below: maven { url "http://jcenter.bintray.com"}
Finally,Go to *File *Settings *Build,Execution and deployment *Gradle *Android Studio --------And check Enable maven repository option.
After that simply clean and rebuild your APP and you will be good to go.
Solution 7 - Android
If you re in your office ,use your smartphone network. I think It will work.
Solution 8 - Android
I had the same problem. I fixed it by removing/commenting proxy settings in gradle.properties. Check your gradle.properties, if you have some like this
systemProp.https.proxyPort=8080
systemProp.http.proxyHost=192.168.1.1
systemProp.https.proxyHost=192.168.1.1
systemProp.http.proxyPort=8080
comment it with #. Which will look like this
#systemProp.https.proxyPort=8080
#systemProp.http.proxyHost=192.168.1.1
#systemProp.https.proxyHost=192.168.1.1
#systemProp.http.proxyPort=8080
Solution 9 - Android
I missed this problem after update studio and gradle ,in the log file tips me some maven store has certificate problem.
I tried restart statudio as somebody suggestion but dose work; and somebody said we should set the jre environment ,but I doesn't know how to set it on Mac . So I tried restart Mac. and start studio I found this tips.
so the problem is floating on the surface: solution: first step: restart computer ,there are too many problem after android studio update . second step:use the old gradle tool OR download the *pom and jar ,put in correct folder.
Solution 10 - Android
You are using older version of libraries.
compile 'com.android.support:appcompat-v7:25.2.0'
compile 'com.android.support:design:25.2.0'
compile 'com.android.support:palette-v7:25.2.0'
compile 'com.google.firebase:firebase-messaging:10.2.0'
Solution 11 - Android
Like a noob!
I was getting a nightmare with this and forgot that i've recently installed a new AV (Kaspersky)
So another solution is: Disable your AV or add exclusions to your AV firewall or proxy
hope it helps to save some time.
Solution 12 - Android
For me this worked:
buildscript {
repositories {
maven { url "http://jcenter.bintray.com"}
maven {
url 'https://maven.google.com/'
name 'Google'
}
}
...
}
allprojects {
repositories {
mavenCentral()
jcenter{ url "http://jcenter.bintray.com/" }
maven {
url 'https://maven.google.com/'
name 'Google'
}
}
}
Solution 13 - Android
-
If you are using kotlin and its showing this error please update your kotlin gradle plugin in project level build.gradle.
-
The certificate expired case : Go to certificates in settings and check if any certificate is expired if any, delete that certificate and clean and sync it will work.
-
Dependencies- unable to find case : In this case delete that dependency and sync the project then add the dependency again with some another version(downgraded version) and sync the project it will work.
These three cases i faced and wasted so much time, hope this will help someone and save someones day.
Thankyou - happy coding**:-)**
Solution 14 - Android
If you are running behind a corporate proxy with SSL interception, you will need to follow these steps to trust your proxy certificate for HTTPS:
- In Android Studio, Open File -> Settings
- In Tools -> Server Certificates
- Tick ‘Accept non-trusted certificates automatically’
- Also click the ‘+’ and manually add the corporate proxy root certificate.
- In Appearance and Behaviour -> System Settings -> HTTP Proxy
- Set your corporate proxy URL and port details
- In Tools -> Server Certificates
- Download KeyStore Explorer: http://keystore-explorer.org/downloads.html
- In KeyStore Explorer (run as admin), open the Android Studio JRE certificate store: C:\Program Files\Android\Android Studio\jre\jre\lib\security\cacerts
- The password should be ‘changeit’
- Import the corporate proxy root certificate, and save.
- In Android Studio, select File -> Invalidate Cache and Restart
Solution 15 - Android
Run bellow command in Android studio terminal after opening the same project. It worked for me.
On Windows:
gradlew cleanBuildCache
On Mac or Linux:
./gradlew cleanBuildCache
Solution 16 - Android
Just try to build the same project through command prompt and if the download dependencies happen successfully, go to settings in you IntelliJ and map the gradle to point gradle in your system and build should happen fine.
Solution 17 - Android
The error is is because of your network restriction that does not allow to sync the project from "http://jcenter.bintray.com";, No need play with the IDE (Android Studio).
Solution 18 - Android
change dependencies from compile to Implementation in build.gradle file
Solution 19 - Android
Switching to the smartphone network & disabling the web security tool installed on my computer solved the problem.
Solution 20 - Android
This issue is related to network connectivity if not solved adding maven { url "http://jcenter.bintray.com"} at project level.
Just try to change your network and sync the gradle, should fix this issue for sure.
Solution 21 - Android
I got the same issue and I fixed it by changing my firewall setting or you can switch to another network
reasons behind it
when we are running our project run command its configure and check for exiting packages and make proceed to download the new or required package and the packages are stored on non-secure IP/hosting so your firewall will try to protect you and you will get these errors
Solution 22 - Android
Those who tried all the above answers and didn't help, or lazy to follow those steps, should try this quick-setting first.
-
Go to Android Studio -> Appearance & Behavior -> System Settings -> HTTP Proxy -> Select Auto-detect proxy settings
-
Go to Android Studio -> File -> Sync Project with Gradle File
Solution 23 - Android
Most of the times when I face this issue. I remove replace https
with http
. It solves the issue.
Solution 24 - Android
Simple Invalidate/Restart fixed it for me. No other actions were taken