2016-04-02 4 views
1

Я следую официальным инструкциям по реагированию, как установить и запустить приложение (https://facebook.github.io/react-native/docs/getting-started.html). Все в порядке (устанавливайте интерактивные и другие библиотеки, запускайте версию ios), но react-native run-android не работает со следующей ошибкой. Что мне приходит в голову, это проблема с OSX El Capitan и OpenSSL, но я попытался исправить это несколько месяцев назад и решил все проблемы. Но я ничего не нашел для этой конкретной ошибки. Я попытался установить град через brew install gradle, но реагировать-native все еще попробуйте установить его снова. Может быть, есть способ, как сказать, реагировать-родной, чтобы не устанавливать его снова?Ошибка SSL при установке Gradle во время run-android-андроида.

Спасибо за любую помощь

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 

ответ

3

Я была такая же проблема на Эль Капитане, после того, как я перепутались с OpenSSL. Это означает, что ваш сертификат Java запутан.

В конце концов, я исправил проблему, переустановив JDK.

Вы можете сделать это первым удалением текущей JDK под:

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

Затем запустите:

sudo rm -rf jdk1.X.X_XX.jdk

Установите вашу версию JDK снова, и все должно работать!


Помимо

Других симптомов этой проблемы включает в себя не в состоянии запускать любой SSL, связанные с «Fetch» ​​функцией. Например, запуск диспетчера пакетов Android даст вам ошибки, говорящие, что он не может извлекать XML-файлы с серверов https.

+0

замена openjdk 7 openjdk8 сделал это для меня. Возможно, переустановка openjdk7 также работает, но я не пробовал. Спасибо за этот намек. – suther

Смежные вопросы