2011-01-06 81 views
2

我想通過Textview顯示日誌文件,Textview日誌文件內容由jni調用。
但Textview什麼也沒有顯示(黑屏空白),當給出「你好/ n有多低」時,Textview顯示正確。
return(* env) - > NewStringUTF(env,「hello/n How low」);被顯示。
return(* env) - > NewStringUTF(env,str);沒有顯示。Textview什麼都不顯示jni

--application.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"); 
    } 
} 

--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代碼(不是J​​NI LIB),它的工作原理。
--just顯示日誌file--

#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的表現呢?
在此先感謝。

回答

0

返回值不正確....只是檢查它.....並返回適當的值.....

+0

謝謝,也許會返回null。但我不知道如何和難以調試它... – tknv 2011-01-07 06:06:46