1. 程式人生 > >zbar條形掃描libiconv.so不相容問題解決方式

zbar條形掃描libiconv.so不相容問題解決方式

在新的系統中,我們發現zbar會出現不相容情況,比如報lib/arm64/libiconv.so" has bad ELF magic

或者libzbarjni.so" is 32-bit instead of 64-bit

出現這種情況主要是我們在開發中用到arm64庫或者arm64-v8a庫的原因。

很久以前一般都只是用armeabi在做相容。現在其實市面上主流的手機都支援armeabi-v7a和arm64-v8a。請看如下簡介:各版本的分析如下所示:
  • mips / mips64: 極少用於手機可以忽略,有興趣的可以百度一下。
  • x86 / x86_64: x86 架構的手機都會包含由 Intel 提供的稱為 Houdini 的指令集動態轉碼工具,實現 對 arm .so 的相容,再考慮 x86 1% 以下的市場佔有率,x86 相關的兩個 .so 也是可以忽略的
  • armeabi: ARM v5 這是相當老舊的一個版本,缺少對浮點數計算的硬體支援,在需要大量計算時有效能瓶頸
  • armeabi-v7a: ARM v7 目前主流版本,一般市面上的驍龍系列或者麒麟系列的處理器絕大部分都是這種架構
  • arm64-v8a: 64位支援
    所謂的ARMv8架構,就是在MIPS64架構上增加了ARMv7架構中已經擁有的的TrustZone技術、虛擬化技術及NEON advanced SIMD技術等特性,研發成的。
  綜上所述建議大家相容armeabi-v7a和arm64-v8a這兩個,其他架構少之又少,armeabi基本淘汰所以現在就不怎麼考慮了。對於一般專案來說,足夠了。

下面討論解決辦法

1.刪除其他包,只留armeabi-v7a與armeabi 這個基礎包

2.在部分專案中可能不能刪除其他包那麼我們就需要 在build.gradle的android裡的defaultConfig內新增如下內容:

 defaultConfig {
    ndk {
            abiFilters "armeabi-v7a"
//            abiFilters "arm64-v8a"
}

   }
然後在專案中整合so檔案的時候只把armeabi-v7a的so資料夾copy到libs裡面。
如果報錯
  1. Error:(151) A problem occurred evaluating project 
    ':app'.  
  2. > Error: NDK integration is deprecated in the current plugin.  Consider trying the new experimental plugin.  For details, see http://tools.android.com/tech-docs/new-build-system/gradle-experimental.  Set "android.useDeprecatedNdk=true" in gradle.properties to continue using the current NDK integration.
請在 gradle.properties 中 新增 
android.useDeprecatedNdk=true

相關推薦

zbar條形掃描libiconv.so相容問題解決方式

在新的系統中,我們發現zbar會出現不相容情況,比如報lib/arm64/libiconv.so" has bad ELF magic或者libzbarjni.so" is 32-bit instead of 64-bit出現這種情況主要是我們在開發中用到arm64庫或者ar

VMware Workstation 與 Device/Credential Guard 相容 解決方案

win10專業版官方解決方案 https://kb.vmware.com/s/article/2146361 win10家庭版解決方案 win10家庭版本身是不支援Hyper-V服務的,但是如果是“win10預覽體驗家庭版”,會在“服務”中發現有Hyper-V服務。解決方案:

Oracle列轉行函式版本相容解決方案

業務場景 本部落格記錄一下Oracle列轉行函式在Oracle11的一些不相容問題,vm_concat在一些業務場景是必須的。不過這個函式使用要謹慎,底層實現應該也是group by等等實現的,效能並不是特別好。這個函式在Oracle12是沒有的,在Oracle11是不太相容的,Oracle10可以正常使用

MathType 與 Office 2016 x64相容 解決方案

2、然後在mathtype安裝目錄下找到以下檔案:..\MathType\Office Support\64\MathType Commands 6 For Word 2010.dotm..\MathType\MathPage\64\MathPage.wll3、將MathType Commands 6 For

在函式‘main’中: 警告: 隱式宣告與內建函式‘printf’相容解決方法

1.編譯yiwei.c檔案為可執行檔案出現如下錯誤: 2. 通過查詢函式的呼叫關係,可以得知:是在函式的中缺少了標頭檔案:#include <stdio.h> 3.假如再報類似編譯告警,一定要首先檢視是否缺少了標頭檔案

【問題】vmware與hyper-v相容解決

【前言】 今天在玩虛擬機器時,啟動報錯。然後就有了篇部落格。 【內容】 解決方法: 喚醒小娜,搜尋“啟用或關閉Windows功能”。 取消 Hyper—V 功能的勾選 等待電腦重啟問題解

Visual Studio 2012 與此版本的 Windows 相容 解決

警告: [Window Title] 程式相容性助手 [Main Instruction] 此程式存在已知的相容性問題 [Expanded Information] Visual Studio 2012 與此版本的 Windows 不相容。有關詳細資訊,請聯絡 Micros

安裝oracle提示版本相容解決

我在 oracle 10g R2  for windows 7 64bit 的安裝時候發現了這個問題。經過驗證可以解決問題。 這算是oracle的一個小bug 在檢查作業系統版本的時候 windows-6.1 沒有維護進去。  找到oracle安裝檔案中的 “orap

SCRIPT65535: 意外地呼叫了方法或屬性訪問(ie相容解決辦法)

在IE8下面,在使用jquery的時候可能會出現這種狀況,解決辦法有一下兩種: 1.凡是input,不管任何型別,不能用text()方法,只能用val()方法; 2.如果看不出來,在js程式碼上加debugger,一步一步除錯,看哪行出錯自然就知道這個方法不能用了

關於USB有線網絡卡對校園網相容解決方案

前幾天由於電腦網絡卡壞掉了,就淘寶買了一個USB外接有線網絡卡,結果對校園網相容性很不好,點開校園網認證客戶端以後,連上幾秒鐘,然後就會斷開,一直顯示認證伺服器,校園網是銳捷網路,經過設定靜態IP,靜態和動態IP交替設定等一系列方法後,還是失敗,以前這些方法是可以解決認證失

mac中dns解析出來解決方式

首先,配置正確的dns,既可以視覺化介面操作 image.png 也可以命令列操作:networksetup -setdnsservers Wi-Fi 8.8.8.8 檢視networksetup -getdnsservers Wi-Fi 此時再去ping域

hue集成mysql找到 libmysqlclient.so.16問題解決

發生 分享圖片 配置文件 lib 解決 可能 技術 -i img 首先我的配置文件如下,這個是沒有問題的 但是在重啟hue連接mysql時,卻發生了如下問題: 這個錯誤的意思就是沒有找到libmysqlclient_r.so.16這個文件,可能是我安裝的mysql有問題

解決win10音效卡驅動相容問題和成功安裝戰神k650-i5-d2上的Sound Blaster Cinema2在win10系統上

安裝win10後,偶爾會出現藍屏,經過我的發現,每次聽歌用揚聲器並且長時間。都會發生藍屏 1 . 所以懷疑音效卡驅動VIA HD Audio(Win 8.1)與系統不相容。 2 .乾脆重新安裝音效卡驅動。在網上找到與win10相容的VIAHDAud_v11_1100e_01

解決app在Android P中安裝失敗以及相容問題

Android P即Android 9.0 在Google IO2018正式面向全球釋出,它的代號是Pie,仍然基於Linux核心構建。全新的手勢操作選項。底部虛擬鍵將由小白點和一顆返回鍵取代。通過輕觸回到主頁、長按撥出語音助手。新的特性主要有: 利用 Wi-Fi RTT 進行室

解決ie6中png圖片格式相容問題

在IE6中對圖片格式png24支援度不高,如果使用的圖片格式是png24,則會導致透明效果無法正常顯示 解決方法:   1.可以使用png8來代替png24,即可解決問題,但是使用png8代替png24以後,圖片的清晰圖會有所下降   2.使用JavaScript來解決該問題,需要向頁面中引入一個外部的

解決 | 此資料庫檔案跟當前sql server例項相容 & sql server2008無法連線到(local)

最近在搞ASP.NET,因實驗室VS版本跟PC不一樣可能,拷回來一開啟就這樣子: 眉頭一皺的我開啟我的古董SQL,自從用了MySQL就沒碰它了我的鍋。。。果然。。連線的時候。。

解決隱式宣告與內建函式相容問題終極“利器”

有時候,我們編譯程式碼時出現: gcc wserver.c -o wserver wserver.c: 在函式‘main’中: wserver.c:27:2: 警告:隱式宣告與內建函式‘memset’不相容 [預設啟用]   memset( &servaddr, '\0',

$.browser.msie 為空或是物件問題的多種解決方法,jquery高版本廢棄低版本api,屬性相容問題

複製文章地址(原文):點選開啟連結 '$.browser.msie' 為空或不是物件,這個是jQuery錯誤出現這個錯誤,是因為升級了jQuery版本,從1.9以前升級到1.9以後,因為$.browser.msie在1.9以後的jQuery中不存在了,所以報錯。 jQuery 1.9 移除了

淘寶彈性佈局方案lib-flexible相容ipad和ipad pro的解決方法

加上下面這一段程式碼即可 <script> /(iPhone|iPad|iPhone OS|Phone|iPod|iOS)/i.test(navigator.userAgent)&&(head=document.getElementsByTag

libiconv.so.2: cannot open shared object file的解決方法

收藏於 2012-04-07 遷移自個人的百度空間 -------------------------------- 重新編譯了libiconv庫之後執行原先沒有問題的程式(該程式用到了iconv庫)就出現瞭如下問題 ./a.out: error while&nb