我正在创建新文件的应用程序,当我的名字是这样的文件,没有任何问题:Android的尴尬行为
private String FILENAME = "myFilename";
但是当我使用的方法来命名文件,编译跳直该行:
String lineSep = System.getProperty("line.separator");
然后到我的类声明:
public class AddUser extends Activity
和应用程序崩溃。
这是日志文件说:
12-03 16:26:12.814: E/AndroidRuntime(20307): FATAL EXCEPTION: main
12-03 16:26:12.814: E/AndroidRuntime(20307): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp.app/com.myapp.app.ProfileSaved}: java.lang.NullPointerException
12-03 16:26:12.814: E/AndroidRuntime(20307): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
12-03 16:26:12.814: E/AndroidRuntime(20307): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
12-03 16:26:12.814: E/AndroidRuntime(20307): at android.app.ActivityThread.access$600(ActivityThread.java:130)
这是我的文件命名方法:
int firstArray;
int nextArray;
private String fileNamer(){
File dataDirectory = Environment.getDataDirectory();
File fileDir = new File(dataDirectory, "data/com.myapp.app/files");
String[] filenameArray = fileDir.list();
Arrays.sort(filenameArray);
if (filenameArray.length == 0){
return "0";
}
if (filenameArray.length == 2500){
return "too_many_items";
}
if (!filenameArray[0].equals("0")){
return "0";
}
int arrayLength = filenameArray.length;
int i;
for(i=0; i<arrayLength-1;){
firstArray = Integer.parseInt(filenameArray[i]);
nextArray = Integer.parseInt(filenameArray[i+1]);
if (firstArray+1 == nextArray){
i++;
}
}
return Integer.toString(nextArray+1);
}
的方法似乎是工作正常,但我看不出为什么会影响程序的其余部分,因为它所做的只是返回一个字符串?
帖子堆栈跟踪 –
你的代码有问题,你应该仔细阅读崩溃日志而不是看错地方。如果你正确地引用了log cat,我们就会知道你的'NullPointerException'崩溃发生在哪里,但到目前为止,你必须检查你自己,然后看看那里提到的文件和行。 –
将错误日志更新为前五行。如果这就是你需要的? – user1813774