-1

我遵循华为开发者网站上关于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)

CloudDBQuickStartApplication 类的 initAGConnectCloudDB 方法:

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

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

CloudDBZoneWrapper类内容调用AGConnectCloudDB类的initialize方法:

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

2 回答 2

0

出现此问题是因为您正在运行 Android 模拟器并且所选设备是 x86 架构。

解决方案是:

A. 下载 ARM 仿真器映像并创建一个 VM。建议您使用 Nexus 6p 或更高版本,并在运行过程中增加内存(至少两倍默认值,因为 ARM 模拟器在 x86 系统上运行缓慢)。

B、使用命令行编译生成APK,然后在x86模拟器上安装APK。

C. 使用真机调试应用。

D. 在编译脚本中设置 splits 参数。

于 2020-07-03T08:25:55.133 回答
0

您提到要在 Android Studio Emulator 上测试您的 Cloud DB 应用程序。

根据我对华为套件实现的观察,使用真正的 android/huawei 设备甚至是华为开发者网站上提供的基于云的智能手机测试环境是一种不那么痛苦的做法。我使用模拟器时遇到的一些错误没有出现在真实设备上一点也不。

那么,我可以建议您在在线 Cloud Debug 或真正的 android 设备上重新测试您的应用程序并检查错误是否仍然存在?

华为云数据库指南链接

于 2020-06-30T00:57:48.033 回答