我们有一个项目是基于cocos2dx + lua,在网络部分用到了protobuf, 在初始化protobuf的时候需要读取本地文件,用lua的io.open读取文件在windows,ios上是没问题的,android下的app是apk文件,由于apk是压缩文件,所以io.open无能为力,因为整个app被压缩为一个文件。在网上查到资料可以通过调用cocos2dx里的getFileData() 这个函数来读取文件内容,getFileData通过检测不同的平台,调用不同的接口的来打开和读取文件,在ios和windows上依然没问题,可在android上调用读取文件时还是打不开文件。试了很多方法都不可以,找公司另一同事来帮忙查看,将路径修改后问题解决。
当时大家也不知道为啥这样能解决,当时想可能是linux不支持这种路径,回家后在linux实验,就算我加几个”./“都不影响打开目录。查看了cocos2d-x 底层,
string relativePath = "scripts/test.pb"; // this is ok
string relativePath = "./scripts/test.pb"; // this can not open the file"
当时大家也不知道为啥这样能解决,当时想可能是linux不支持这种路径,回家后在linux实验,就算我加几个”./“都不影响打开目录。查看了cocos2d-x 底层,