帮朋友导一个c艹项目的一堆c艹文件,导入Android项目。
不会c艹,于是查阅点资料,趟了很多坑。放出来,初学者以后别走坑。
c艹中,这种赋值会报错,类转换异常,但改为insert之后就不报错了。如下所示,注释掉的是之前的,insert是我自己写的,这样写就不会报错了。
C++11的字符串操作,android的ndk不支持,需要将字符串转换为一个c形式的字符数组,然后用字符操作:
to_string也不行,得这么写:
另外出现了UnsatisfiedLinkError: No implementation found for java.lang。。。。。。。。。。。。。。。。。。。。。。。。。异常,我这里不是因为包名写错之类的,是因为c艹的类外实现,as在编译的时候,会认为我们的方法没有被实现。所以报这个异常。
还有一个,我用cmake生成的so文件都在原来的cpp文件前面加了一个lib。
我在其他项目导入这个so的时候,用System.LoadLibrary(“”);方法的时候,里面的名字不能写这个lib否则会找不到,而且在报错信息中写的是找不到liblibxxxx.so。说明它自动给你加了一个lib了。