В Java все находится в форме класса.
Если вы хотите использовать любой объект, тогда у вас есть две фазы:
Пример:
Object a;
a=new Object();
То же самое для концепции массива
Item i[]=new Item[5];
i[0]=new Item();
Если вы не дают секцию инициализации, тогда возникает NullpointerException
.
Ваши активы упакованы в ваш apk, поэтому вы не можете ссылаться на них напрямую во время выполнения, как в приведенном вами образце кода. У вас есть 2 варианта:
Context.getAssets().open('cacert.cert')
Вы можете просто использовать класс AAssetManager в C ++.
В основном вам нужно:
AAssetManager* assetManager
// Open your file
AAsset* file = AAssetManager_open(assetManager, filePath, AASSET_MODE_BUFFER);
// Get the file length
size_t fileLength = AAsset_getLength(file);
// Allocate memory to read your file
char* fileContent = new char[fileLength+1];
// Read your file
AAsset_read(file, fileContent, fileLength);
// For safety you can add a 0 terminating character at the end of your file ...
fileContent[fileLength] = '\0';
// Do whatever you want with the content of the file
// Free the memoery you allocated earlier
delete [] fileContent;
Вы можете найти официальную документацию официального ndk здесь .
Изменить: Чтобы получить объект AAssetManager:
blockquote>
- В своей основной деятельности основной функцией является приложение paramater android_app *, вам просто нужно его получить здесь: app-> activity-> assetManager
- Если у вас есть активность Java, вам необходимо отправить через JNI экземпляр объекта Java AssetManager, а затем использовать функцию AAssetManager_fromJava ()