JNIEXPORT jlong JNICALL
Java_com_alipay_android_phone_alice_AliceManager_nativeInitSurface(JNIEnv *env, jclass type,
                                                                   jobject surface,
                                                                   jstring externalPath_,
                                                                   jlong nativeAssetManager) {
    const char *externalPath = env->GetStringUTFChars(externalPath_, 0);

    surface_context *surfaceContext = new surface_context();
    /** env 线程相关, 为了避免初始化线程和播放线程弄混,
    ** 不允许使用初始化线程播放, 一会需要重新赋值才行*/
    surfaceContext->env = env;
    surfaceContext->assetManager = (void *) nativeAssetManager;
    surfaceContext->window = ANativeWindow_fromSurface(env, surface);
    surfaceContext->externalPath = std::string(externalPath);
    env->ReleaseStringUTFChars(externalPath_, externalPath);

    __state2 = surfaceContext;

    std::string assetsPath(externalPath);
    if (externalPath[strlen(externalPath) - 1] != '/')
        assetsPath += "/";

    gameplay::FileSystem::setResourcePath(assetsPath.c_str());
    GP_INFO("FileSystem::setResourcePath %s", assetsPath.c_str());

    __assetManager = (AAssetManager *) nativeAssetManager;
    GP_INFO("AAssetManager set");

    return (jlong) surfaceContext;

}

Add a code snippet to your website: www.paste.org