AAssetManager* mgr = AAssetManager_fromJava(env, assetManager);
assert(NULL != mgr);
AAsset* testAsset = AAssetManager_open(mgr, "hello.txt", AASSET_MODE_UNKNOWN);
if (testAsset)
{
assert(testAsset);
size_t assetLength = AAsset_getLength(testAsset);
__android_log_print(ANDROID_LOG_DEBUG, "!!!!Native Audio", "Asset file size: %d\n", assetLength);
char* buffer = (char*) malloc(assetLength + 1);
AAsset_read(testAsset, buffer, assetLength);
buffer[assetLength] = 0;
__android_log_print(ANDROID_LOG_INFO, "!!!!!Test Asset Manager", "The value is %s", buffer);
AAsset_close(testAsset);
free(buffer);
}
else
{
__android_log_print(ANDROID_LOG_ERROR, "!!!!!Test Asset Manager", "Cannot open file");
}
//rsa_gen_keys(pub, priv);
return (*env)->NewStringUTF(env, "!!!Hello from JNI");
にアクセスする必要があるのHello-jni.cファイルで
public class HelloJni extends AppCompatActivity {
static {
System.loadLibrary("hello-jni");
}
private AssetManager mgr;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hello_jni);
mgr = getResources().getAssets();
stringFromJNI(mgr);
}
public native String stringFromJNI(AssetManager mgr);
}
今私はアサートファイルからファイルを読み取ることができています。
現在、私はAssertフォルダにアクセスできますが、アサートフォルダからファイルにアクセスすることはできません –