2013-06-05 22 views
-2

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

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 ; 
} 

我用这个值在吐司 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; 

我该如何解决这个错误?

+3

您显示'GPSTracker'的声明,很好;但它在哪里初始化? – fge

+0

它被定义但启动?请发布整个MainActivity –

+1

294号线在哪里? – Oswald

回答

0

Ok so gps是GPSTracker类的一个对象。你需要使用new来初始化它。

GPSTracker gps = new GPSTracker(); 

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

退房本教程的详细信息: http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/

希望这有助于。干杯!

+0

我初始化GPSTracker gps = new GPSTracker(MainActivity 。这个);但我有同样的错误:( – Alex

+0

那么你应该真的看看这个教程。还要在GPSTracker.java中共享代码。 – rtindru

+0

检查设计挑战其他治疗 - 一切正常。给出一些原因,在行中的错误 - 294行 - FileInputStream fIn = openFileInput(FILENAME); – Alex

0

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