gpt4 book ai didi

java - Textview 不显示 jni

转载 作者:太空宇宙 更新时间:2023-11-04 00:09:56 24 4
gpt4 key购买 nike

我想通过 Textview 显示日志文件,而 Textview 日志文件内容由 jni 调用。
但是 Textview 没有显示(空白黑屏),当只给出“hello/n How low”时,Textview 显示正确。
return (*env)->NewStringUTF(env, "hello/n 有多低");被展示了。
return (*env)->NewStringUTF(env, str);没有显示。

--应用程序.java--

package com.showlog;

import android.app.Activity;
import android.widget.TextView;
import android.os.Bundle;

public class showlog extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

TextView tv = new TextView(this);
tv.setText( stringFromJNI() );
setContentView(tv);
}

public native String stringFromJNI();

public native String unimplementedStringFromJNI();

static {
System.loadLibrary("showlog");
}
}

--显示日志.c--

#include <string.h>
#include <stdio.h>
#include <jni.h>

#define MAX 119 // MAX of one line length of log file
#define Log_file "./Log_file.log" // log file path

jstring
Java_com_showlog_stringFromJNI(JNIEnv* env, jobject thiz)
{
char line[120]; // one line length of Log_file
char str[2000]; // Log_file length
FILE *fin;

fin=fopen(Log_file, "r");
while( ! feof(fin)){
fgets(line, MAX, fin);
strcat(str, line);
}
fclose(fin);

return (*env)->NewStringUTF(env, str);
}

然后我只尝试 c 代码(不是 jni lib),它有效。
--只显示日志文件--

#include <string.h>
#include <stdio.h>

#define MAX 119 // MAX of one line length of log file
#define Log_file "./Log_file.log" // log file path

main()
{
char line[120]; // one line length of Log_file
char str[2000]; // Log_file length
FILE *fin;

fin=fopen(Log_file, "r");
while( ! feof(fin)){
fgets(line, MAX, fin);
strcat(str, line);
}
fclose(fin);

printf("%s", str);

return 0;
}

Textview是怎么显示的?
提前致谢。

最佳答案

返回值不正确....检查一下.....并返回正确的值.....

关于java - Textview 不显示 jni,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4613497/

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