2016-04-02 2 views
1

Ich befolge react-native offizielle Schritte, wie app (https://facebook.github.io/react-native/docs/getting-started.html) installieren und ausführen. Alles ist in Ordnung (reactive-native und andere Bibliotheken installieren, führen Sie ios-Version), aber react-native run-android schlägt mit folgendem Fehler fehl. Was mir in den Sinn kommt, ist ein Problem mit OSX El Capitan und OpenSSL, aber ich habe versucht, es vor einigen Monaten zu beheben und alle Probleme gelöst. Aber ich habe für diesen spezifischen Fehler nichts gefunden. Ich habe versucht, Gradle über brew install gradle zu installieren, aber react-native versuchen immer noch, es erneut zu installieren. Vielleicht gibt es einen Weg, wie man reactive-native sagt, es nicht wieder zu installieren?SSL-Fehler bei der Installation Gradle während react-native run-Android

Danke für jede Hilfe hatte

22:23 $ react-native run-android 
Starting JS server... 
Building and installing the app on the device (cd android && ./gradlew installDebug)... 
Downloading https://services.gradle.org/distributions/gradle-2.4-all.zip 

Exception in thread "main" java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext) 
    at javax.net.ssl.DefaultSSLSocketFactory.throwException(SSLSocketFactory.java:248) 
    at javax.net.ssl.DefaultSSLSocketFactory.createSocket(SSLSocketFactory.java:255) 
    at sun.net.www.protocol.https.HttpsClient.createSocket(HttpsClient.java:405) 
    at sun.net.NetworkClient.doConnect(NetworkClient.java:162) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:432) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) 
    at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264) 
    at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367) 
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191) 
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1105) 
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:999) 
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1513) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441) 
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254) 
    at org.gradle.wrapper.Download.downloadInternal(Download.java:58) 
    at org.gradle.wrapper.Download.download(Download.java:44) 
    at org.gradle.wrapper.Install$1.call(Install.java:59) 
    at org.gradle.wrapper.Install$1.call(Install.java:46) 
    at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65) 
    at org.gradle.wrapper.Install.createDist(Install.java:46) 
    at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:126) 
    at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61) 
Caused by: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext) 
    at java.security.Provider$Service.newInstance(Provider.java:1617) 
    at sun.security.jca.GetInstance.getInstance(GetInstance.java:236) 
    at sun.security.jca.GetInstance.getInstance(GetInstance.java:164) 
    at javax.net.ssl.SSLContext.getInstance(SSLContext.java:156) 
    at javax.net.ssl.SSLContext.getDefault(SSLContext.java:96) 
    at javax.net.ssl.SSLSocketFactory.getDefault(SSLSocketFactory.java:122) 
    at javax.net.ssl.HttpsURLConnection.getDefaultSSLSocketFactory(HttpsURLConnection.java:332) 
    at javax.net.ssl.HttpsURLConnection.<init>(HttpsURLConnection.java:289) 
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.<init>(HttpsURLConnectionImpl.java:85) 
    at sun.net.www.protocol.https.Handler.openConnection(Handler.java:62) 
    at sun.net.www.protocol.https.Handler.openConnection(Handler.java:57) 
    at java.net.URL.openConnection(URL.java:979) 
    at org.gradle.wrapper.Download.downloadInternal(Download.java:55) 
    ... 7 more 
Caused by: java.io.IOException: Invalid keystore format 
    at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:658) 
    at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:56) 
    at sun.security.provider.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:224) 
    at sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(JavaKeyStore.java:70) 
    at java.security.KeyStore.load(KeyStore.java:1445) 
    at sun.security.ssl.TrustManagerFactoryImpl.getCacertsKeyStore(TrustManagerFactoryImpl.java:226) 
    at sun.security.ssl.SSLContextImpl$DefaultSSLContext.getDefaultTrustManager(SSLContextImpl.java:767) 
    at sun.security.ssl.SSLContextImpl$DefaultSSLContext.<init>(SSLContextImpl.java:733) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at java.security.Provider$Service.newInstance(Provider.java:1595) 
    ... 19 more 
Could not install the app on the device, read the error above for details. 
Make sure you have an Android emulator running or a device connected and have 
set up your Android development environment: 
https://facebook.github.io/react-native/docs/android-setup.html 

Antwort

3

ich das gleiche Problem auf El Capitan, nachdem ich mit OpenSSL verwirrt. Dies bedeutet, dass Ihr Java-Zertifikat vermasselt ist.

Am Ende habe ich das Problem durch Neuinstallation des JDK behoben.

Sie können dies tun, indem zuerst unter den aktuellen JDK entfernen:

/Library/Java/JavaVirtualMachines/jdkmajor.minor.macro[_update].jdk

Dann laufen:

sudo rm -rf jdk1.X.X_XX.jdk

Installieren Sie Ihre Version von JDK wieder, und alles sollte arbeiten werden!


Neben

Andere Symptome dieses Problems in der Lage, enthält keine SSL-bezogenen ‚holen‘ Funktionen auszuführen. Wenn Sie beispielsweise den Android-Paket-Manager ausführen, erhalten Sie Fehler, die darauf hinweisen, dass XML-Dateien nicht von https-Servern abgerufen werden konnten.

+0

ersetzen openjdk 7 mit openjdk8 tat es für mich. Vielleicht funktioniert auch eine Neuinstallation von openjdk7, aber ich habe es nicht ausprobiert. Vielen Dank für diesen Hinweis. – suther

Verwandte Themen