- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
GetStringUTFChars(env, fi-6ren">
我的 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/
我正在学习 Java JNI 并试图理解 GetStringUTFChars 和 ReleaseStringUTFChars。我仍然无法理解 ReleaseStringUTFChars。根据我对某些文
在JNI document , GetStringUTFChars() 将 java 字符串 jstring 转换为 c++ const char*,将返回一个可选的 jboolean 标志,指示它是
我正在使用 jni 开发 Android 应用程序。 我使用 GetStringUTFChars 函数如下 jboolean iscopy; const char* trainfile = (env)
stackoverflow.com/questions/5859673声明无论是否复制字符串都必须调用 ReleaseStringUTFChars()。那么 GetStringUTFChars() 中
我的 android 应用程序的 android NDK。我被困在起跑线上,它没有进一步编译。以下是我的代码。它不会在 "str = (*env)->GetStringUTFChars(env, fi
我用 jni 开发了一个 android 应用程序。我在 GetStringUTFChars 的 dvmDecodeIndirectRef 中得到了一个 dvmabort。我只中止了一次。 为什么会这
我有一个名为“Robotic Arm Edge”的机器人和 USB 接口(interface)。我正在尝试制作自定义软件,但这涉及到 Java native 接口(interface)。我选择 Jav
Rob Gordon 的“Essential JNI: Java Native Interface”一书包含以下代码示例,用于将 jstring 转换为 C 字符串: const char* utf_
在JNI调用期间,我一直遇到这个问题 "Detailed error: #,# There is insufficient memory for the Java Runtime Environmen
目前正在为标签打印机使用 Brother SDK,当我调用 Asset Manager 时,会出现位图,但当它被解析为打印图像时它崩溃了。 if (myPrinter.startCommunicati
我对从 java 传递给 c 的对象有点困惑?应该在 native jni 方法中删除它们,还是在方法返回时将它们作为垃圾回收。例如: 如果我的 java 文件中有一个本地声明 public nati
我在 JniLibs 代码上遇到错误 android ndk。我得到错误: JNI DETECTED ERROR IN APPLICATION: GetStringUTFChars received
我是一名优秀的程序员,十分优秀!