Приложение для Android выходит из строя при запуске в эмуляторе

# #android #firebase

#Android #огневая база

Вопрос:

Мое приложение отлично работает на реальном устройстве, где при запуске в эмуляторе происходит сбой. ниже приведен журнал.

 E/FirebaseInstanceId: Failed to get FIS auth token  java.util.concurrent.ExecutionException: javax.net.ssl.SSLHandshakeException: Unacceptable certificate: EMAILADDRESS=certadmin@netskope.com, CN=caadmin.netskope.com, O=netSkope Inc, L=London, ST=London, C=GB  at com.google.android.gms.tasks.Tasks.zzb(Unknown Source:61)  at com.google.android.gms.tasks.Tasks.await(Unknown Source:23)  at com.google.firebase.iid.GmsRpc.setDefaultAttributesToBundle(com.google.firebase:firebase-iid@@20.2.3:55)  at com.google.firebase.iid.GmsRpc.startRpc(com.google.firebase:firebase-iid@@20.2.3:37)  at com.google.firebase.iid.GmsRpc.getToken(com.google.firebase:firebase-iid@@20.2.3:13)  at com.google.firebase.iid.FirebaseInstanceId.lambda$getInstanceId$2$FirebaseInstanceId(com.google.firebase:firebase-iid@@20.2.3:164)  at com.google.firebase.iid.FirebaseInstanceId$Lambda$4.start(Unknown Source:8)  at com.google.firebase.iid.RequestDeduplicator.getOrStartGetTokenRequest(com.google.firebase:firebase-iid@@20.2.3:14)  at com.google.firebase.iid.FirebaseInstanceId.lambda$getInstanceId$3$FirebaseInstanceId(com.google.firebase:firebase-iid@@20.2.3:163)  at com.google.firebase.iid.FirebaseInstanceId$Lambda$1.then(Unknown Source:6)  at com.google.android.gms.tasks.zzf.run(Unknown Source:2)  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)  at com.google.android.gms.common.util.concurrent.zza.run(Unknown Source:6)  at java.lang.Thread.run(Thread.java:919)  Caused by: javax.net.ssl.SSLHandshakeException: Unacceptable certificate: EMAILADDRESS=certadmin@netskope.com, CN=caadmin.netskope.com, O=netSkope Inc, L=London, ST=London, C=GB  at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:231)  

Ответ №1:

Каждое приложение должно явно добавлять пользовательские сертификаты:

res/xml/network_security_config.xml

 lt;network-security-configgt;  lt;base-configgt;  lt;trust-anchorsgt;  lt;certificates src="system"/gt;  lt;certificates src="user"/gt;  lt;/trust-anchorsgt;  lt;/base-configgt; lt;/network-security-configgt;  

Также убедитесь, что AndroidManifest.xml содержит атрибут android:networkSecurityConfig в теге:

 lt;?xml version="1.0" encoding="utf-8"?gt; lt;manifest ... gt;  lt;application android:networkSecurityConfig="@xml/network_security_config"  ... gt;  ...  lt;/applicationgt; lt;/manifestgt;