Android移动芯片架构在不同国家有何不同?

时间:2017-04-21 17:17:53

标签: android opencv android-ndk cpu opencv4android

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

我最近注意到这一点,似乎有些手机会在一个国家/地区运行,但德国,韩国,意大利和澳大利亚的应用用户似乎都有不满意的错误,特别是在使用opencv时..

我已经通过

包含了opencv的使用
static {

    System.loadLibrary("somecompiledlibname");

}

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

所以我的问题是:

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

尝试与此处相同:

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