时至今日,很多同学已经多so库的使用不会感到陌生,在AS中so库的存放方式有两种:
(1) 将AS切换到Project目录,在main下新建jniLibs,在jniLibs下新建armeabi,把so库copy进去;
(2)第二种方法比较麻烦,这里就不介绍了,自行百度吧;
调用So库里的方法也有两种方式:
(1)So库有对应的jar包,把jar包放进libs里就可以调用so库里面的方法了,当然得先把so放进jniLibs里;
(2)只有So库,没有jar包,下面详细讨论这种情况…..
没有jar包又想调用so里的方法,其实也是很简单的,前提当然是要把so库放进jniLibs里
System.loadLibrary(“jnigpio3”)顾名思义了……
再看一眼so库的存放
这里的重点就是,so库里的路径要跟LoadSpeakerSo的包名一致(把路径里的MainActivity换成LoadSperkerSO),上图吧..
如果so库里的这个路径跟我们要System.loadLibrary()所在类的包名不一致,那么会报MainActivity NoClassDefFoundError的错误,这点是要注意的….
做完上面的事情,就可以随意调用so库里的方法了