assetsフォルダへのアクセス
CRI ADX2 LE SDK for Androidは、Androidプロジェクトのassetsフォルダ内へのアクセスを提供しています。

Cocos2d-xプロジェクトにおけるResource下のファイルは、Android環境においてはassetsフォルダへコピーされます。 Atomライブラリはassetsアクセスのために有効化手続きが必要です。
Cocos2d-xアプリにおけるassetsアクセス有効化

次に示すコードはassetsアクセスの有効化を行います。

#elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
/* CRI Atom ライブラリの初期化 */
criAtomEx_Initialize_ANDROID(NULL, NULL, 0);

/* 以下、Androidで必要な処理。JNIを介してActivityのContextオブジェクトを取得する */
cocos2d::JniMethodInfo methodInfo;
cocos2d::JniHelper::getStaticMethodInfo(methodInfo, "org/cocos2dx/lib/Cocos2dxActivity", "getContext", "()Landroid/content/Context;");
auto android_context_object = (jobject)methodInfo.env->CallStaticObjectMethod( methodInfo.classID, methodInfo.methodID );

/* assetsフォルダへのアクセスを有効化する */
criFs_EnableAssetsAccess_ANDROID(cocos2d::JniHelper::getJavaVM(), android_context_object);
#endif

上に示したように、assetsフォルダ内へのアクセスを有効化するにはcriFs_EnableAssetsAccess_ANDROID 関数を呼ぶ必要があります。CRI Atom ライブラリの初期化後に呼んでください。
本関数はJava VMへの参照とContextオブジェクトを引数に受け取ります。これらを用意するにはcocos2d::JniHelperクラスの利用をおすすめします。

assetsへのアクセスパス指定
上記手続き以降、Atomライブラリはファイルパスを指定された際にそれがassets以下の相対パスか否かをチェックします。例えば”/mnt/sdcard/…”のような先頭に’ / ’ を含むパスだった場合、Atomライブラリはassets以外へのアクセスを行います。一方、渡されたパスの先頭に’ / ’文字が無い場合、Atomライブラリはパスをassets以下の相対パスとみなし、assetsへのファイルアクセスを行おうとします。

CRI Middleware logo Copyright (c) 2012-2018 CRI Middleware Co., Ltd. CRI ADX2 LE マニュアル (for Cocos2d-x) SDKVer.2.10版