關於Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY


http://blog.163.com/gobby_1110/blog/static/29281715201010146177879/

 

上周終於還是買了開發板了  把上次項目分到的錢都花掉了

然后開始把項目在開發板上測試

開發板帶的有USB接口的GPS裝置

但是經過我的測試 此GPS無法在Odroid T開發板上正常工作

這個問題等到周一和partner碰頭了再解決

然后遇到的第二個問題:

運用了Google Maps的程序 在開發板中測試都無法安裝 並且報錯:

Failure [INSTALL_FAILED_MISSING_SHARED_LIBRARY]

從昨天開始解決這個問題 論壇有說是平台不支持的 有說是其他問題的

嘗試了解決方案都未果

今天無奈之下查找了Android開發的QQ群

運氣很好的是加入了一個群並且認識了“龍蝦哥”

龍蝦哥 上海人氏 碩士畢業 目前和一個朋友自行開發Android和iphone項目掙錢

他在聽了我遇到的問題之后開始幫我想解決方法

方案1:在項目根目錄下來添加libs文件夾以及armeabi和armeabi-v7a兩個子文件夾

(因為他是在C平台下開發,然后再用NDK導入)

對比emulator和真機的system/lib文件夾下面的文件

把emulator上有而真機上沒有的.os文件導出 並且放入之前我們創建的armeabi和armeabi-v7a兩個文件夾

運行 結果失敗

然后繼續尋找解決方案

查看DDMS中的Logcat

紅字標出程序無法加載未知共享庫com.google.android.maps.jar

研究中發現 真機中 system/framework文件夾下缺少兩個重要文件:

com.google.android.maps.jar

com.google.android.gtalkservice.jar

開始解決:

Enter the shell of your device.

  • adb -d shell

Remount the system partition with read/write permissions.

  • mount -o rw -t yaffs2 /dev/block/mtdblock3 /system

For me the remount was a bit different. The following did the trick

  • mount -o remount,rw /dev/root /

1.從emulator的system/framework文件夾下導出這兩個文件

1.1 直接通過DDMS導出

1.2 通過adb命令導出

2. 把導出的這兩個文件導入Odroid 7的system/framework文件夾下

2.1 直接通過DDMS導出

2.2 通過adb命令導出:

  • adb -d push com.google.android.maps.jar /system/framework/

或者

  • adb push com.google.android.maps.jar /system/framework/com.google.android.maps.jar

  • adb push com.google.android.gtalkservice.jar /system/framework/com.google.android.gtalkservice.jar

3. 給這兩個文件添加權限

把真機中/etc/permissions/platform.xml文件取出來編輯:

<permissions>
...
<!-- This is a list of all the libraries available for application code to link against. -->
<library name="android.awt" file="/system/framework/android.awt.jar"/>
<library name="android.test.runner" file="/system/framework/android.test.runner.jar"/>
<library name="com.android.im.plugin" file="/system/framework/com.android.im.plugin.jar"/>
<library name="com.google.android.maps" file="/system/framework/com.google.android.maps.jar"/>
<library name="com.google.android.gtalkservice" file="/system/framework/com.google.android.gtalkservice.jar"/>
</permissions>
然后再把這個platform.xml文件push回真機的/etc/permissions文件夾中

4.重啟真機硬件

並且

  • adb stop

  • adb start

5.嘗試安裝帶有Google Maps的程序

期間又重啟了一次開發板(真機)

(如果沒有解決再次重啟試試)

問題解決

Ps:11月23日補充:

之前用的開發板是Odroid T,今天換了最新版本的Odroid 7

Odroid 7安裝的Android版本是2.2   同樣不帶地圖

2.2版本與之前的版本略有不同,大家拷貝是記得必須得用2.2版本的emulator中的

com.google.android.maps.jar

注意看2,2版本的emulator的system/framework

你會發現已經沒有了com.google.android.gtalkservice.jar

所以我們只需要把com.google.android.maps.jar push進你的真機文件夾即可

然后轉入/etc/permissions

與之前版本不一樣,Android2.2不再在platform.xml下更改

而是直接pull出你emulator的  /etc/permissions/com.google.android.maps.xml

然后push進你真機的 /etc/permissions

然后重啟真機,這樣就可以

解決之后看看 其實問題並不復雜 但沒有解決之前是感覺非常的棘手

龍蝦哥說的好  遇到問題不要急 多研究研究 要有耐心

在此謝謝龍蝦哥的幫助 Thank U

這也是我寫的第一篇開發筆記  以后遇到問題  還會繼續寫的

國內遇到此問題 在論壇上的解決方案基本無效

希望我的日志能給其他人幫助 ^ ^


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM