GetStringUTFChars(env, fi-6ren">
gpt4 book ai didi

android - 从 GetStringUTFChars JNI 得不到结果

转载 作者:太空宇宙 更新时间:2023-11-04 02:57:28 26 4
gpt4 key购买 nike

我的 android 应用程序的 android NDK。我被困在起跑线上,它没有进一步编译。以下是我的代码。它不会在 "str = (*env)->GetStringUTFChars(env, filename, NULL);" 之后编译。请检查我的java和c代码

java代码:

public class MyffmpegActivity extends Activity {

private static native int logFileInfo(String filename);

static
{
Log.i("HEHA", "HOHA");
System.loadLibrary("mylib");
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_myffmpeg);
String path=Environment.getExternalStorageDirectory().getPath();
path=path+"/test.mp4";
Log.i("Name Returned is ", ":"+path);
int x=logFileInfo(path);


}

C代码

jint Java_com_example_myffmpegtest_MyffmpegActivity_logFileInfo(JNIEnv * env, jobject  this, jstring filename)
{

av_register_all();
AVFormatContext *pFormatCtx;
const jbyte *str;

str = (*env)->GetStringUTFChars(env, filename, NULL);
if(av_open_input_file(&pFormatCtx, str, NULL, 0, NULL)!=0)
{
LOGE("Can't open file '%s'\n", str);
return 1;
}
else
{

LOGI("File was opened\n");
LOGI("File '%s', Codec %s",
pFormatCtx->filename,
pFormatCtx->iformat->name
);
}
return 0;}

最佳答案

正确的语法是:

const char *str;
str = (*env)->GetStringUTFChars(env, filename, NULL);

此外,您似乎正在尝试开发我已经为其创建了解决方案的东西。查看FFmpegMediaMetadataRetriever .

关于android - 从 GetStringUTFChars JNI 得不到结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15830285/

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