【问题标题】:Static initialization fails after removing armeabi-v7a folder from libs从库中删除 armeabi-v7a 文件夹后,静态初始化失败
【发布时间】:2013-08-29 02:09:40
【问题描述】:

当我的项目中有 libs/armeabi 文件夹和 libs/armeabi-v7a 文件夹时,一切正常,我可以通过调用 OpenCVLoader.initDebug() 来执行 OpenCV 的静态初始化

但是,由于我的主要目标是支持所有不使用 ARM v7 CPU 的旧设备,我听说 armeabi-v7a has some optimization code 仅使用 armeabi 应该适用于所有设备,所以我想删除它以减少 APK尺寸。但是在这样做之后,它无法在我的三星 Galaxy S3 上初始化。

我做错了吗?如何强制它使用 libs/armeabi 进行初始化?

提前致谢!

【问题讨论】:

  • 有人知道答案吗?求助~

标签: android opencv


【解决方案1】:

我发现了问题,但我不确定它为什么会这样..

这是因为我的文件夹结构:

/armeabi
   - libabc.so
   - libdef.so
   - libspecial.so

/armeabi-v7a
   - libabc.so
   - libdef.so

因为我的设备使用的是arm7 cpu,所以最终的APK在libs文件夹中只包含libabc.so和libdef.so。这就是为什么我无法初始化依赖于 libspecial.so 的 OpenCV。 我上面的问题具有误导性,因为我说我删除了 armeabi-v7a 文件夹,但实际上我只删除了 libspecial.so,对此感到抱歉,应该更清楚地提及它。

但是,读完这篇文章后,我更加困惑.. http://docs.xamarin.com/guides/android/advanced_topics/cpu_architecture .这篇文章说在4.0.4版本之后应该进行合并,我不会有这个问题..哦,好吧。

我通过完全删除 armeabi-v7a 文件夹让它工作,所以一切都在 armeabi 上运行。但我认为这不是一个好主意,因为有些人建议如果我真的想节省 APK 文件大小,我应该为每个架构创建两个单独的 APK 目标。

【讨论】:

    猜你喜欢
    • 2011-09-09
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    相关资源
    最近更新 更多