알아낼 수없는 이상한 충돌이 있습니다.동일한 코드를 실행하는 동안 첫 번째 실행시 앱이 두 번째로 실행되지 않고 충돌합니다.
앱을 처음 시작하면 /data/Message.xml이 있는지 확인합니다. 그렇지 않다면 하나를 만듭니다. 그런 다음 xml 파일을 구문 분석하는 페이지로 이동합니다. 존재하지 않기 때문에 충돌이 발생합니다 (그래서 파일을 만들지 못했습니다). 나는 데이터 디렉토리를 보았고 실제로 그것을 만들지 않았다.
그런 다음 다시 실행하고 동일한 코드를 실행하지만 이번에는 XML 파일을 만듭니다.
처음 작동하지 않는 이유를 모르겠지만 앱이 처음 충돌하고 두 번째로 실행될 때와 동일한 조건이 적용될 때까지는 앱이 아무 것도 변경하지 않습니다.
Android 일입니까?
더 자세한 정보 : 파일을 사용할 수있는 경우
내가 확인 : 경우 (file.exists() == false)를 { createFirstXML()
File file = new File(Environment.getDataDirectory() + "/data/com.name.app/files/Message.xml");
; }
createFirstXML() :
public void createFirstXML() {
파일 newxmlfile = 새로운 파일 (Environment.getDataDirectory() + "/data/com.name.app/files/Message.xml"); { newxmlfile.createNewFile(); } catch (IOException e) { e.printStackTrace(); } FileOutputStream fileos = null; 시도 { fileos = new FileOutputStream (newxmlfile); } catch (FileNotFoundException e) { e.printStackTrace(); } XmlSerializer serializer = android.util.Xml.newSerializer(); { serializer.setOutput (fileos, "UTF-8"); 시도하십시오. serializer.startDocument (null, Boolean.valueOf (true)); serializer.setFeature ("http://xmlpull.org/v1/doc/features.html#indent-output", true);
serializer.startTag (null, "Message");
serializer.startTag (null, "Service"); serializer.text ("App"); serializer.endTag (null, "Service");
serializer.endTag (null, "Message");
serializer.endDocument(); serializer.flush(); fileos.close(); } catch (예외 e) { e.printStackTrace(); } }
로그 :
java.io.IOException: No such file or directory
bla
bla
java.io.FileNotFoundException: /data/data/com.name.app/files/Message.xml (No such file or directory)
bla
bla
java.lang.IllegalArgumentException
bla
bla
java.io.FileNotFoundException: /data/data/com.name.app/files/Message.xml (No such file or directory)
bla
bla
java.io.FileNotFoundException: /data/data/com.name.app/files/Message.xml (No such file or directory)
bla
bla
나는 그것이 또한 메시지를 찾을 수 없습니다 내 응용 프로그램을 실행 두 번째 시간입니다.xml (왜냐하면 createFirstXML();을 실행하기 때문에) 예외를주지 않는다.
정말 이해가 안가 .. 모든
파일 디렉토리도 존재합니까? 이것은 XML 파일이 생성되지 않는 이유 일 수 있습니다. –
DDMS에서 확인했습니다. 이상한 일은 내가 두 번째로 앱을 시작한 코드와 동일했다. – Galip