내 게임에 100MB가 있기 때문에 확장 파일을 사용해야합니다. 난 그냥 주, 패치 확장 파일을 사용하지 않는getAPKExpansionZipFile()이 null을 반환합니다.
ZipResourceFile expansionFile = null;
try {
expansionFile = APKExpansionSupport.getAPKExpansionZipFile(getApplicationContext(),2,0);
} catch (IOException e) {
e.printStackTrace();
}
) (에서 onCreate 함수에서 MainActivity 코드 아래에 넣어, 그래서 버전이 올바른지으로 나는 공을 넣어 같아요. expansionFile이 성공적으로로드되었는지 확인하기 위해 로그 할 때 null 값을 얻습니다.
if(expansionFile == null)
Gdx.app.log("EXPANSION_FILE", "NULL");
else
Gdx.app.log("EXPANSION_FILE", "NOT NULL");
나는 https://developer.android.com/google/play/expansion-files.html 에 대한 지침을 따라 내 Nexus 기기에 폴더에 수동으로 main.2.com.my.game.obb 파일을 넣어 : 안드로이드의 다른 OBB 파일이 있습니다
Internal storage\Android\obb\com.my.game\
\ obb 폴더가 다른 게임과 다를 수 있으므로 올바른 위치 여야합니다. obb 확장 파일을 마운트하지 않는 이유는 무엇입니까?
UPDATE 나는 DownloaderActivity
구현과 아무 문제없이 확장 파일을 다운로드합니다. 그것은 나에게 "Not zip archive"로그 메시지를 주었다. 나는 그것을 피하는 방법을 발견했다. OBB 파일을 압축하여 개발자 콘솔에 업로드했습니다. 그것은 자동으로 OBB로 변환되었지만, 이번에는 Nexus에 다운로드했을 때 더 이상 null 값을 ZipResourceFile
에게 주었고 더 이상 "압축 파일이 아닙니다"라는 메시지가 나타나지 않습니다. 하지만 Libgdx에서 AssetManager를 사용하고 있기 때문에 여전히 파일에 액세스 할 수 없습니다.
나는 다른 방법을 발견했다. 나는 지금 테스트 중이다.
브로 이봐, u는 당신이 assetmanager ?? –
안녕 chelo_c를 해결 했는가? 특급 유엔 libgdx를 파일을 사용하는 관리 않았다 중요한 것을 :(몰랐어요. 그래, 난 적어도 이미지를로드 관리해야 그래서 나는 AssetManager의 두 인스턴스로 끝났습니다. 사용자 지정 FileHandle을 사용하는 사용자 지정 FileHandleResolver를 만들어야했습니다 .FileHandle에서 zip 파일을로드하는 read() 함수를 재정의합니다. AssetManager의 인스턴스 인 경우 FileHandleResolver를 생성자에 전달합니다. 내 대답에 전체 솔루션을 쓸 것입니다. – draziw