Google Play 스토어에 애플리케이션이 있습니다. 이 응용 프로그램에서는 파일에 일부 데이터를 저장합니다 (데이터베이스는 더 좋지만 더 많은 작업이 필요함). 이것은 완벽하게 작동하지만 문제는 예를 들어 버전 2를 실행하고 파일에 데이터를 저장할 때 다시 가져올 수 있다는 것입니다. 하지만 버전 3으로 업데이트하면 데이터는로드되지 않지만 파일은 여전히 응용 프로그램의 'files'디렉토리에 있습니다. 이 파일은 장치의 내부 저장소에 저장됩니다. 이제는 왜 이런 일이 발생하는지 모르지만 다른 sharedUserId가 원인 일 수 있다는 것을 인터넷에서 읽었지만 내 매니페스트에 sharedUserId가 없습니다. 나는 안드로이드가 그 다음 하나를 생성 할 것이라는 것을 압니다. 그러나 이것은 항상 동일합니까? 앱이 다른 컴퓨터에서 컴파일 되더라도? 누군가 도움을 줄 수 있습니까?업데이트 후 Android 내부 저장소의 파일을 읽을 수 없습니다.
미리 감사드립니다.
편집
내가 파일을 읽고 쓰기 위해 사용하는 일부 코드 :
는 작성하기 :
try {
FileOutputStream fos = context.openFileOutput(fileName, Context.MODE_PRIVATE);
ObjectOutputStream os = new ObjectOutputStream(fos);
os.writeObject(object);
os.close();
} catch (IOException e) {
LogUtils.e(IoUtils.class.getSimpleName(), e.getMessage());
} finally {
}
읽기 :
try {
FileInputStream fis = context.openFileInput(fileName);
ObjectInputStream is;
is = new ObjectInputStream(fis);
Serializable objectOut = (Serializable) is.readObject();
is.close();
return objectOut;
} catch (StreamCorruptedException e) {
LogUtils.e(IoUtils.class.getSimpleName(), e.getMessage());
} catch (IOException e) {
LogUtils.e(IoUtils.class.getSimpleName(), e.getMessage());
} catch (ClassNotFoundException e) {
LogUtils.e(IoUtils.class.getSimpleName(), e.getMessage());
}
return null;
를 업데이트 한 후 아무 것도 그 파일에서 벗어나는 것 같지만 아무 것도 얻지 못합니다. 오류. ROOT 파일 탐색기를 사용하면/data/data/myApp/files /로 이동할 수 있으며 업데이트 전에 동일한 크기의 파일을 찾을 수 있습니다.
"안드로이드가 생성 할 것이라는 것을 안다.하지만이 것은 항상 같은 것입니까?" 네, 주어진 장치에 대해서요. "앱이 다른 컴퓨터에서 컴파일 되더라도?" - 그래, 이건 중요하지 않아. Android는 개발 도구가 아닌 사용자 ID를 만드는 앱입니다. 이 장치의 제조사 및 모델은 무엇입니까? – CommonsWare
2 개의 장치에서 테스트 한 결과 두 제품 모두에 문제가 발생했습니다. – Allinone51
OK ... 다음은 어떤 제품과 모델입니까? – CommonsWare