Ich habe eine App, die Anrufe zu einem Web-Service über https macht. Wenn ich die apk auf meinem Telefon laufen lasse, funktioniert es großartig. Doch in dem Emulator, die alle die POST
Anfragen über SSL
scheitern mit:android - SSL Probleme in Android Studio Emulator, funktioniert gut auf Telefon
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)
In den Zugriffsprotokollen auf unserem Server, meldet es eine 403 (Verbote), wenn der Emulator versucht, den Webservice zu schlagen, apparantly, weil die Emulator ist nicht Hand-Shaking richtig mit unserem Server. Es gibt eine Reihe von Zeilen wie diese in Apaches Fehlerprotokoll
[Thu Aug 20 12:21:21 2015] [error] [client xxx.xxx.xxx.xxx] Re-negotiation handshake failed: Not accepted by client!?
Apache tatsächlich hinzugefügt die "!?" Es sieht also nach einem ernsthaft unerwarteten Fehler aus.
In meiner IDE habe ich die Option für "Accept non-trusted Zertifikate automatisch" markiert, aber das macht keinen Unterschied.
Ich habe Lösungen im Web für die Behebung verschiedener SSL-Probleme in Android gesehen, aber sie scheinen alle das Telefon selbst ein Problem zu sein, und erfordern Code-Änderung. Da es auf dem Telefon funktioniert, scheint es, dass dies ein Android Studio-Problem ist, und ich sollte in der Lage sein, dies mit einer Konfigurationseinstellung zu korrigieren. Oder muss ich vielleicht etwas in einer Apache machen?
Fazit: Wie kann ich mit meiner App im Emulator von Android Studio mit einem SSL-Webdienst kommunizieren?
mit 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'
Sie Emulator selbst konfigurieren sollte, IDE-Konfiguration hat nichts mit dem Problem zu tun. Können Sie auf andere https-Websites zugreifen? Haben Sie Datum und Uhrzeit im Emulator richtig eingestellt? Haben Sie Genymotion probiert? – Dmide
Es wird überhaupt nicht in Genymotion gestartet, ich bekomme "Fehler [INSTALL_FAILED_MISSING_SHARED_LIBRARY]" 'Datum und Uhrzeit sind korrekt. Ich weiß nicht, ob es auf andere Seiten zugreifen kann, weil es keinen Grund dazu gibt, ich bin mir nicht sicher, wie ich das in den bestehenden Code einbauen würde. – chiliNUT
Wenn Ihr Ziel es ist, es auf jedem Emulator funktionieren zu lassen, nicht genau auf Standard von Google, folgen Sie diesem Thread http://stackoverflow.com/questions/20121883/how-to-install-google-play-services-in-a- -genymotion-vm-with-no-drag-and-drop-su und versuche es erneut.Dies sollte den Fehler FAILED_MISSING_SHARED_LIBRARY beheben. – Dmide