gpt4 book ai didi

java - 保留对 assetmanager 的全局引用

转载 作者:行者123 更新时间:2023-11-30 11:31:28 27 4
gpt4 key购买 nike

我正在使用 Java 中的 assetmanager 打开一个文件以在我的本地环境中读取。我希望在初始化时只打开这个文件一次,然后多次使用文件中定义的函数。为此,我需要将 assetmanager 保持在全局范围内。我目前在 C++ 中有以下内容:

extern "C" {

JNIEXPORT jstring JNICALL
Java_com_torch_torchdemo_TorchDemo_callTorch( JNIEnv* env,
jobject thiz,
jobject assetManager) {
// get native asset manager
if(globalManager == NULL){
jobject globalManager = env->NewGlobalRef(assetManager)
AAssetManager* manager = AAssetManager_fromJava(env, globalManager);
}

但是,这会提示未定义 globalManager。这是有道理的,因为在初始化时,它不是。我找不到任何关于如何解决这个问题的引用资料。大多数全局引用问题都是关于保持对对象的引用。但是,我需要保留对 AAssetManager 的引用。

最佳答案

However, this complains that globalManager is not defined.

当然可以。它没有定义。

Which makes sense because at init, it isn't. I cannot find any references on how to get around this.

呃,你考虑过定义它吗?

很明显,您需要的是在全局范围内声明的“static jobject globalManager”,而不是在您首次尝试使用它后在 block 中声明的局部变量。

关于java - 保留对 assetmanager 的全局引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17127545/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com