- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试访问我在 res/raw/coolvetica.ttf
中的资源。
这是我加载 NDK 共享库的 Java Activity 类:
public class OGLActivity extends Activity{
private GLSurfaceView m_glView;
@Override
public void onCreate(Bundle savedInstanceBundle) {
super.onCreate(savedInstanceBundle);
// some init code and setting the current view here, not neccessary for code to run
getGlyphs(getResources().getAssets(), "Hello World");
}
static {
System.loadLibrary("GlyphCreator");
}
public native int getGlyphs(AssetManager amgr, String text);
}
这是我的共享库 GlyphCreator
中的 NDK C++ 代码:
extern "C"
JNIEXPORT jint JNICALL Java_com_myapplication_sometest_OGLActivity_getGlyphs(JNIEnv *env, jobject object, jobject assetManager, jstring text)
{
AAssetManager *assetMgr = AAssetManager_fromJava(env, assetManager);
if(assetMgr != nullptr)
{
AAsset *fontFile = AAssetManager_open(assetMgr, "res/raw/coolvetica.ttf", AASSET_MODE_BUFFER);
if(fontFile != nullptr)
{
// The code here is never reached, fontFile is always NULL
}
}
}
我已经调试了我的代码并调用了函数 getGlyphs()
。
fontFile 始终为 NULL,我已尝试从字符串加载资源:"coolvetica.ttf"、"raw/coolvetica.ttf"、"res/raw/coolvetica.ttf"
,它们都导致 fontFile 为 NULL。
AAssetManager 不是 NULL,我认为获取 AAssetManager 的代码是正确的。
它与共享的库有什么关系吗?它没有资源访问权限吗?
感谢您的帮助。
最佳答案
只是出于帮助他人的目的,将此作为评论区的“答案”: How To Get File In Assets From Android NDK
关于android - AAssetManager 无法从共享库访问原始资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52960538/
我正在尝试访问我在 res/raw/coolvetica.ttf 中的资源。 这是我加载 NDK 共享库的 Java Activity 类: public class OGLActivity exte
问题 我想知道如何从 native 代码在 Android 中创建 Assets 文件夹的文件层次结构。我正在使用 AAssetManager_openDir 但 AAssetDir_getNextF
我正在使用NDK,我需要读取资源媒体文件。因此,据我了解,为了访问资源,我需要使用 AAssetManager ,最终我需要得到 std::basic_istream来使用它。 所以,问题是,如何获得
我正在尝试从自定义 WallpaperService 访问 native 代码中的 Assets 。 native 代码编译并工作,但尝试从传递给 native 函数的 AssetManager 对象
我是一名优秀的程序员,十分优秀!