【聲明:】本文是作者(蘑菇v5)原創(chuàng)壤圃,版權(quán)歸作者 蘑菇v5所有,侵權(quán)必究琅轧。本文首發(fā)在簡書埃唯。如若轉(zhuǎn)發(fā),請注明作者和來源地址鹰晨!未經(jīng)授權(quán)墨叛,嚴(yán)禁私自轉(zhuǎn)載!
項(xiàng)目需求:
對接平板硬件模蜡,使其能夠根據(jù)狀態(tài)漠趁,動(dòng)態(tài)變換兩邊顏色。
異常問題:
根據(jù)廠家提供的demo
忍疾,調(diào)試自己程序的時(shí)候闯传,每次都報(bào)java.lang.UnsatisfiedLinkError: No implementation found for xxx...
但是自己的各種配置,都是根據(jù)demo
的卤妒,所以很疑惑甥绿。使用第三方的so
庫時(shí)候,調(diào)用JNI
方法時(shí)出現(xiàn)了錯(cuò)誤则披。報(bào)錯(cuò)如下所示:
異常原因:
我們.so
中函數(shù)聲明涉及到的package name
和class name
與調(diào)用它的package name
和class name
不符共缕,對照本項(xiàng)目,就是項(xiàng)目中類的包名一定要是com.example.elcapi
士复,而項(xiàng)目中寫的是com.example.test
图谷。原因是JNI
接口Java_com_example_elcapi_jnielc
中,com.example.elcapi
代表的是package name
阱洪,jnielc
則是class name
便贵。
解決方法:
修改項(xiàng)目結(jié)構(gòu),新建包名com.example.elcapi
冗荸,路徑不能錯(cuò)承璃,并把jnielc
類移到該包名下面。如下圖所示:
其他配置(紅色是重點(diǎn))
效果圖: