내 응용 프로그램은 원격 웹 서버에서 zip 파일을 다운로드 한 다음 압축을 풉니 다.FileTransfer "저장된 파일 :"다음에 FileNotFoundException이 표시됩니다.
는자바 스크립트가 성공적으로 로그 FileTransfer를 호출 :
FileTransfer Saved file: file:///data/data/com.yadda.yadda/update.zip
즉시 파일을 테스트 내 사용자 지정 업데이트 플러그인을 호출하는 자바 스크립트 성공 기능의 일환으로 :
Context ctx = this.cordova.getActivity().getBaseContext();
File update = new File(ctx.getFilesDir(),"update.zip");
if(!update.exists()) Log.w("File not found",update.getAbsolutePath());
로그에 대한 그 마지막 줄은 다음과 같습니다 :
File Not Found /data/data/com.yadda.yadda/update.zip
나중에 try/catch 블록에서 InputStream 변수가 만들어지고 catch 블록 중 하나가 매번 실행되는 FileNotFoundException입니다.
FileNotFoundException이 흥미로운 비트를 가지고 더 많은 정보 -
편집을 시작합니다. 파일 경로가 잘못 - 내가 FileInputStream에
InputStream fileis = new FileInputStream(update);
그리고 예외의 흥미로운 비트 만들 수 같은 "업데이트"변수 보내고있다하더라도 :
Caused by: java.io.FileNotFoundException: /data/data/com.yadda.yadda/files/update.zip
최종 편집
을 여기서 뭐가 잘못 됐어? Cordova는 파일 전송이 완료되고 파일이 저장되었다는 것을 기록하지만 파일을 테스트 할 때 파일이 존재하지 않습니다! FileInputStream을 만들 때 경로가 다른 이유는 예외입니까?
무엇이 누락 되었습니까? 모든 것은 IOS 버전의 앱에서 잘 작동합니다.
편집 2 : 요청에 따라, 나는 장치의 파일 시스템을 탐색하고 update.zip 참 /data/user/0/com.yadda.yadda
당신은 당신이 파일 위치를 테스트하는 방법을 보여 올바른 디렉토리를 얻기 getFilesDir()
와 디렉토리를 얻기 있지만 방법 : 다음과 같이 표시됩니다 첫 x 째 인스턴스에서 저장 파일 위치를 설정합니다. 정확한 위치를 반환하는'getFilesDir()'은 파일을 저장 한 곳이 아니며 파일 전송 로그에서도 명확합니다. 어떻게 설정 했습니까? '/// data/data/com.yadda.yadda/update.zip'? – Simon
자바 스크립트가 앱과 관련이있는 것은 무엇입니까? zip을 다운로드 한 후 Filetransfer는 무엇을해야합니까? 두 가지 경로를 언급합니다. – greenapps
'/ data/data/com.yadda.yadda/files /'는'getFilesDir()'이 반환하는 정확한 위치입니다. 따라서 문제는 파일 전송에 있으며 귀하는이를 우리에게 보여주지 않았습니다. 따라서 귀하의 질문에 대답 할 수 없습니다. 다시 말해,'// data/data/com.yadda.yadda /'는 파일을 저장하는 올바른 장소가 아닙니다. – Simon