日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

[z]看來真不能直接將.so文件直接添加到Android的JAR包了

 techres 2012-02-16

看來真不能直接將.so文件直接添加到Android的JAR包了

如果直接在一個(gè)JAR中的/libs/armeabi下放個(gè)XXX.SO文件,然后導(dǎo)出成JAR包的后,如A.JAR,

在一個(gè)Android的程序中引用這個(gè)A.JAR,那么編譯的時(shí)候就會(huì)出現(xiàn)一下的錯(cuò)誤:

The library 'A.jar' contains native libraries that will not run on the device.
The following libraries were found:
- libs/armeabi/libXXX.so

  網(wǎng)上搜素索了下,還是沒有找到解決方法。

只能采用如下的方式:

1.像科大訊飛那樣(/Msc/assets/lib/msc.jet:文件前4個(gè)字節(jié)為:.ELF,而且文件末尾可以看到類是JNI的函數(shù)

直接將.SO文件改個(gè)擴(kuò)展名,然后放到assert中,導(dǎo)出到JAR中,然后在啟動(dòng)的時(shí)候/或者首次被調(diào)用的時(shí)候?qū)⑵淇截惖?/p>

調(diào)用程序的目錄下,手動(dòng)加載SO庫文件

2.就是直接將JAR中的.SO文件放到目標(biāo)程序的/libs/armeabi下,即可。

(以上提到的.SO文件都是針對(duì)ARM架構(gòu)的,如果是x86的,注意將上文中的相應(yīng)目錄修改成/libs/x86/目錄即可)

 

總之:Android將某個(gè)工程打成JAR包的時(shí)候,最好只包括源代碼,另外就是可以包含一些文件,如assert或者自己定義的一些文件個(gè)數(shù),

但不要保護(hù)資源文件(/res下所有文件內(nèi)容都不要放在JAR包中)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多