在我的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;
如何解决此错误?
答案 0 :(得分: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/
希望这会有所帮助。干杯!
答案 1 :(得分:0)
openFileInput( FILENAME );
是您设计的方法吗?如果是,它可能会抛出错误,您应该检查它。如果没有,请阅读有关此功能的android文档,它应告诉您在哪种情况下失败。
你确定你的文件存在吗?