HMS Cloud DB SDK UnsatisfiedLinkError Для экземпляра AGConnectCloudDB реализация не найдена.

Я следовал инструкциям на веб-сайте Huawei Developer об услуге Cloud DB. Затем я просто создал простое приложение, пытающееся запрашивать данные из Cloud DB и тестировать его через Android Studio Emulator.

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

    Process: com.huawei.agc.clouddb.quickstart, PID: 6400
    java.lang.UnsatisfiedLinkError: No implementation found for long com.huawei.agconnect.cloud.database.AGConnectCloudDB.nativeGetInstance(com.huawei.agconnect.cloud.database.CertificateService, java.lang.String, java.lang.String) (tried Java_com_huawei_agconnect_cloud_database_AGConnectCloudDB_nativeGetInstance and Java_com_huawei_agconnect_cloud_database_AGConnectCloudDB_nativeGetInstance__Lcom_huawei_agconnect_cloud_database_CertificateService_2Ljava_lang_String_2Ljava_lang_String_2)
        at com.huawei.agconnect.cloud.database.AGConnectCloudDB.nativeGetInstance(Native Method)
        at com.huawei.agconnect.cloud.database.AGConnectCloudDB.initialize(AGConnectCloudDB.java:128)
        at com.huawei.agc.clouddb.quickstart.model.CloudDBZoneWrapper.initAGConnectCloudDB(CloudDBZoneWrapper.java:103)
        at com.huawei.agc.clouddb.quickstart.CloudDBQuickStartApplication.onCreate(CloudDBQuickStartApplication.java:28)
        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1154)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5871)
        at android.app.ActivityThread.access$1100(ActivityThread.java:199)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

Метод initAGConnectCloudDB класса CloudDBQuickStartApplication:

public class CloudDBQuickStartApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        //Initialize AGConnectCloudDB
        CloudDBZoneWrapper.initAGConnectCloudDB(this);
    }

    @Override
    public void onTerminate() {
        super.onTerminate();
    } 

Содержимое класса CloudDBZoneWrapper, которое вызывает метод инициализации класса AGConnectCloudDB:

    public static void initAGConnectCloudDB(Context context) {
        AGConnectCloudDB.initialize(context);
    }

2 ответа

Вы упомянули, что нужно протестировать приложение Cloud DB на эмуляторе Android Studio.

Основываясь на моих наблюдениях за реализацией комплектов Huawei Kits, было менее болезненно использовать настоящее устройство Android/ Huawei или даже облачную тестовую среду смартфона, представленную на веб-сайте разработчика Huawei. Некоторые ошибки, с которыми я столкнулся при использовании эмулятора, не отображались на реальном устройстве совсем.

Итак, могу ли я предложить вам повторно протестировать свое приложение в онлайн-облачной отладке или на реальном устройстве Android и проверить, сохраняется ли ошибка?

Ссылка на руководство Huawei Cloud DB

Проблема возникает из-за того, что вы запускаете симулятор Android и выбрано устройство с архитектурой x86.

Решение:

A. Загрузите образ эмулятора ARM и создайте виртуальную машину. Рекомендуется использовать Nexus 6p или новее и увеличивать объем памяти во время работы (удвоить значение по умолчанию, по крайней мере, потому, что эмулятор ARM работает медленно в системе x86).

Б. Используйте командную строку для компиляции и создания APK, а затем установите APK на симуляторе x86.

C. Используйте настоящий телефон для отладки приложения.

D. Установите параметр splits в скрипте компиляции.

Другие вопросы по тегам