안드로이드 어색한 행동 : 나는 파일 이름을 지정하는 방법을 사용할 때나는이 같은 파일 이름을 지정할 때 아무 문제가 없습니다, 새 파일을 생성하는 응용 프로그램을 만들고있어
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);
}
방법은 잘 동작하는 것 같지만 난 그냥 왜 볼 수없는이 것 그 프로그램의 나머지 부분에 영향을주는 것은 문자열을 반환하는 것 뿐인가?
스택 추적 –
코드가 버그가있어서 잘못된 장소를 보는 대신 오류 로그를주의 깊게 읽어야합니다.로그 고양이를 정확하게 인용하고자한다면'NullPointerException' 크래시가 발생하는 곳을 알 수 있습니다. 그러나 지금 당장은 자신을 확인한 다음 거기에 언급 된 파일과 행을 살펴 봐야합니다. –
오류 로그를 처음 다섯 행으로 업데이트했습니다. 그게 필요한거야? – user1813774