在我的应用程序中,我需要将位于“assets”文件夹中的文件传递到“shared library”,但现在无法使用jni来实现此操作。在我的项目中,我正在使用预编译的共享库,在其中我已经将我的文件路径硬编码,但是我收到了“找不到文件或目录”的错误。因此,在我的.apk文件中,我有一个.so文件位于“libs/armeabi-v7a”文件夹中,并且我的文件位于“/assets”文件夹中。
我尝试过像这样做:
我尝试过像这样做:
char *cert_file = "/assets/cacert.cert";
av_strdup(cert_file);
还有其他一些路径,但都无法正常工作。
这真的可能吗?
am
变量AssetManager am = this.getContext().getAssets();
。 C/C++代码将接收此am
变量并从那里继续工作。最终,C/C++中的文件I/O将具有此行:int nread = AAsset_read(asset,buf, length);
。但在此之前,您需要这个:int fd = AAsset_openFileDescriptor(asset, &offset, &length);
如果fd
小于零,则表示资产已压缩。 - daparic