Ho un'app che effettua chiamate a un servizio web tramite https. Quando eseguo l'apk sul mio telefono, funziona alla grande. Tuttavia, nell'emulatore, tutti i POST
richieste oltre SSL
falliscono con:android - Problemi SSL nell'emulatore di Android Studio, funziona perfettamente sul telefono
Read error: ssl=0xb402be00: Failure in SSL library, usually a protocol error error:100c50bf:SSL routines:ssl3_read_bytes:NO_RENEGOTIATION (external/boringssl/src/ssl/s3_pkt.c:852 0xabf7fcd7:0x00000000)
Nei registri di accesso sul nostro server, segnala un 403 (Forbidden) ogni volta che l'emulatore cerca di colpire il webservice, pare perché il l'emulatore non è che si agita correttamente con il nostro server. C'è un sacco di righe come questa nel log degli errori di apache
[Thu Aug 20 12:21:21 2015] [error] [client xxx.xxx.xxx.xxx] Re-negotiation handshake failed: Not accepted by client!?
Apache ha effettivamente aggiunto il "!?" quindi sembra un errore gravemente inaspettato.
Nel mio IDE, ho spuntato l'opzione per "Accetta certificati non attendibili automaticamente" ma ciò non fa differenza.
Ho visto soluzioni sul Web per risolvere vari problemi SSL in Android, tuttavia, sembrano tutti essere il telefono stesso con un problema e richiedono la modifica del codice. Dal momento che funziona correttamente sul telefono, sembra che si tratti di un problema con Android Studio e dovrei essere in grado di correggerlo con un'impostazione di configurazione. O forse devo fare qualcosa in un apache?
Bottom line: In che modo è possibile far parlare la mia app con un servizio web SSL nell'emulatore di Android Studio?
Uso di Studio 1.3.1, Java 1.7.0_65,
compileSdkVersion 21
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.bla.bla"
minSdkVersion 14
targetSdkVersion 19
multiDexEnabled true
versionCode 12
versionName '1.2.0.8'
è necessario configurare emulatore per sé, la configurazione IDE non ha nulla a che fare con il problema. Puoi accedere ad altri siti Web https? Hai impostato correttamente la data e l'ora sull'emulatore? Hai provato Genymotion? – Dmide
non si avvierà affatto in Genymotion, ricevo '" Errore [INSTALL_FAILED_MISSING_SHARED_LIBRARY] "" la data e l'ora sono corrette. Non so se può accedere ad altri siti perché non ha alcun motivo per, non sono sicuro di come funzionerei nel codice esistente. – chiliNUT
Se il tuo obiettivo è farlo funzionare su qualsiasi emulatore, non esattamente su predefinito da google, segui questa discussione http://stackoverflow.com/questions/20121883/how-to-install-google-play-services-in-a -genymotion-vm-with-no-drag-and-drop-su e riprova.Questo dovrebbe risolvere l'errore FAILED_MISSING_SHARED_LIBRARY. – Dmide