Firebase приглашать об ошибке при отправке писем - PullRequest
0 голосов
/ 05 мая 2018

Моему приложению не удалось отправить приглашения. Откроется экран приглашения, и когда отправитель нажмет кнопку отправить, чтобы отправить электронную почту выбранным контактам, он получит ошибку

Сообщение не удалось отправить

Я пробую все, что могу вспомнить, проверяю соединение, использую другую учетную запись Google и даже создаю небольшое приложение, которое отправляет только приглашения. Единственное, что я могу найти, что дает подсказку об ошибке, это следующие записи в журнале:

05-05 19: 56: 41,191 1409-1409 /? D / SurfaceFlinger: дубликат имени слоя: изменения com.google.android.gms / com.google.android.gms.appinvite.AppInviteActivity в com.google.android.gms / com.google.android.gms.appinvite.AppInviteActivity # 3

...

05-05 19: 56: 41.411 3254-4228 /? E / Volley: [216] BasicNetwork.performRequest: неожиданный код ответа 400 для https://www.googleapis.com/plusdatamixer/v1/mutateonekey?alt=proto&key=AIzaSyAP-gfH3qvi6vgHZbSYwQ_XHqV_mXHhzIk

После нажатия кнопки отправки генерируется около 10 записей журнала, но только эти 2 кажутся актуальными.

Вот полный код моего тестового приложения, копия из документации, на случай, если где-нибудь произойдет сбой:

public class MainActivity extends AppCompatActivity {

    private static final int REQUEST_INVITE = 1002;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    private void onInviteClicked() {
        Intent intent = new AppInviteInvitation.IntentBuilder(getString(R.string.invitation_title))
                .setMessage(getString(R.string.invitation_message))
                .setDeepLink(Uri.parse(getString(R.string.invitation_deep_link)))
             //   .setCustomImage(Uri.parse(getString(R.string.invitation_custom_image)))
                .setCallToActionText(getString(R.string.invitation_cta))
                .build();
        startActivityForResult(intent, REQUEST_INVITE);
    }

    public void click(View view) {
        onInviteClicked();
    }
}

Зависимости автоматически добавляются Android Builder. Вот снимок файла Gradle:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'
    implementation 'com.google.firebase:firebase-invites:11.8.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

Я застрял в этом на несколько часов и все еще не понимаю. Есть указатель?

Обновление: Приложение и тестовый проект могут успешно отправлять приглашения на моем физическом андроиде, который запускает API 21. Запуск приложения в симуляторе Android с API 21 все еще дает сбой, поэтому указывает, что служба ограничена физическими устройствами, но в течение недели я успешно протестирован на виртуальных устройствах. Кроме того, ничто не подтверждает, что служба ограничена, поэтому я, должно быть, что-то делаю не так.

Обновление 6 мая 2018 года: Только что обновил пакет invites до com.google.firebase:firebase-invites:15.0.1 и все равно получил ту же ошибку, но ему предшествует:

W/GLSUser: [AppCertManager] IOException while requesting key: 
    java.io.IOException: Invalid device key response.
        at gga.a(:com.google.android.gms@12529024@12.5.29 (040700-192802242):12)
        at gga.a(:com.google.android.gms@12529024@12.5.29 (040700-192802242):64)
        at gga.a(:com.google.android.gms@12529024@12.5.29 (040700-192802242):21)
        at gfy.a(:com.google.android.gms@12529024@12.5.29 (040700-192802242):4)
        at gfy.onTransact(:com.google.android.gms@12529024@12.5.29 (040700-192802242):4)
        at android.os.Binder.transact(Binder.java:627)
        at cwl.onTransact(:com.google.android.gms@12529024@12.5.29 (040700-192802242):3)
        at android.os.Binder.execTransact(Binder.java:697)
W/GLSUser: [DeviceKeyStore] Cannot load key: Device key file not found.
E/Volley: [220] BasicNetwork.performRequest: Unexpected response code 400 for https://www.googleapis.com/plusdatamixer/v1/mutateonekey?alt=proto&key=AIzaSyAP-gfH3qvi6vgHZbSYwQ_XHqV_mXHhzIk
...