Android 不同国家的手机芯片架构不同?

Android mobile chip architectures different in different countries?

我有一个 android 应用程序,它使用 c 库并为 x86、armeabi 和 armeabi-v7a 架构编译。

我最近注意到了这一点,似乎有些 phone 可以在一个国家/地区使用,但德国、韩国、意大利和澳大利亚的应用程序用户似乎遇到了 UnsatisfiedLinkErrors,特别是在使用 opencv 时。 .

我已经通过

包含了 opencv 的使用
static {

    System.loadLibrary("somecompiledlibname");

}

异常java.lang.UnsatisfiedLinkError:未找到本机方法:org.opencv.core.Mat.n_Mat:()

所以我的问题是:

1) 不同国家的架构是否不同?

2) 我该如何解决这个问题?

您只能在 OpenCV 初始化之后调用任何 OpenCV 对象和函数,包括对象构造函数。当 OpenCV 正确初始化时 onManagerConnected(LoaderCallbackInterface.SUCCESS) 被调用。

像这里一样尝试:

static {
    if (!OpenCVLoader.initDebug()) {
        //..
    }
}

没有。手机之间的架构不同。给定的 CPU 在世界各地使用相同的架构。 x86 是 Intel(或 AMD)PC 处理器,有时用于平板电脑,但很少使用。 ARM 是一种完全不同类型的芯片,世界上几乎所有的移动设备都在使用它。 ARMv7 是更现代的 ARM 版本,但不适用于较旧的 CPU。你最好支持所有这些,尽管现在几乎所有东西都将是 ARMv7。