-2

在我的 Android 应用程序中,有一个代码用于服务中,并且必须将文件中的信息读取到字符串中。我从这里获取代码https://stackoverflow.com/a/9095665/2448623

   public String readSavedData ( ) {
    String datax = "" ;
    String FILENAME = "TeleportSAASPass.txt";
    if(datax != null){
    try {
        FileInputStream fIn = openFileInput ( FILENAME ) ;
        InputStreamReader isr = new InputStreamReader ( fIn ) ;
        BufferedReader buffreader = new BufferedReader ( isr ) ;

        String readString = buffreader.readLine ( ) ;
        while ( readString != null ) {
            datax = datax + readString ;
            readString = buffreader.readLine ( ) ;
        }

        isr.close ( ) ;
    } catch ( IOException ioe ) {
        ioe.printStackTrace ( ) ;
    }
    }
    return datax ;
}

我使用这个值以 Toast MainActivity.java 的形式向用户显示信息

String UserInfo = gps.readSavedData();
Toast.makeText(getApplicationContext(), UserInfo, Toast.LENGTH_LONG).show();

但是当我尝试执行这个函数时,我得到了

java.lang.NullPointerException
com.teleport.saas.GPSTracker.readSavedData(GPSTracker.java:294)

变量在 MainActivity.java 中定义

// GPSTracker class
GPSTracker gps;

我该如何解决这个错误?

4

2 回答 2

0

好的,所以 gps 是 GPSTracker 类的一个对象。您需要使用 new 对其进行初始化。

GPSTracker gps = new GPSTracker();

我假设 GPSTracker.java 是您创建的文件。所以从技术上讲,您应该已经在类中定义了 readSavedDate() 方法。还记得在清单中添加 ACCESS_FINE_LOCATION 和其他必要的权限。

查看本教程了解详情: http ://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/

希望这可以帮助。干杯!

于 2013-06-05T09:30:43.947 回答
0

openFileInput( FILENAME );你设计的方法吗?如果是,它可能会抛出错误,您应该检查它。如果没有,请阅读有关此功能的 android 文档,它应该会告诉您在哪种情况下它会失败。你确定你的文件存在吗?

于 2013-12-12T14:34:47.777 回答