2013-08-16 4 views
1

Google에 앱을 업로드했습니다. 그것은 출판되었습니다. 내 주요 엑스 파일은 응용 프로그램 버전 코드 2와 함께 업로드되었고 그것은 여전히 ​​같은 이름을 지닙니다. 내 메인 애플 리케이션은 지금 버전 코드 4에 있으며 여전히 main.2 exp 파일을 사용하고 있습니다.확장 파일 다운로드시 문제가 발생했습니다.

이미 디버그를 통해 내 앱으로 파일을 테스트했습니다.

테스트 계정을 만들었습니다. 해당 계정으로 기기에 로그인하고 테스트 계정을 만든 후 20 분 동안 다운로드를 시도했습니다.

파일 크기가 정확하다고 생각합니다. 나는 크기 155,630,535 바이트에서 크기를 사용하고 155630535L로 설정합니다. 내가 사용하지 않는 디스크의 크기라고하는 또 다른 것이 있습니다.

12 시간 전에 apk를 업로드했습니다.

정말 잘못 될지 모릅니다. 내가 궁금해하는 유일한 점은 1.13 인 버전 이름입니다. 나는 이것을 어디에서든지 사용해야합니까?

확장 파일을 다운로드하는 데 문제가 있습니다. 처음에는 '이 앱을 구입하지 않았기 때문에 다운로드에 실패했습니다.'라는 메시지가 나타납니다. 이제 apk 파일을 다시 컴파일 (내보내기 파일) 한 다음 제거하고 내 장치에 다시 설치하면이를 게시 계정에 업로드 했으므로 '자원을 찾을 수 없습니다.'라는 메시지가 나타납니다. 도와주세요 ...

답변

2

ok. 저는 많은 어려움을 겪은 후에 제 문제를 해결했습니다.

먼저 디스크의 파일 크기 (바이트 단위)가 아니라 파일 크기 (바이트 단위)입니다.

두 번째로 테스트 계정을 설정으로 이동했습니다. 테스트 계정을 만들어야합니다.

셋째, 앱을 초안 모드로 저장해야합니다. 앱이 게시 된 경우 테스트 계정을 사용하여 테스트하는 동안 확장 파일이 다운로드되지 않습니다.

누군가에게 도움이되기를 바랍니다.

+0

이봐, 내 응용 프로그램은 초안 모드에, 난 내가 올바른 크기를 퍼트 여전히 같은 오류가 발생 한 테스트 계정에 놓여있다. 다른 아이디어가 있습니까? –

+0

드라프 모드도 더 이상 작동하지 않으면 올바르게 테스트하려면 알파 또는 베타 버전으로 앱을 게시해야합니다. apk 확장 파일에 대한 자세한 내용은 내 anwer를 참조하십시오. – Jordy

0

apk 확장 작업 방식이 바뀌었고 Android Studio를 사용하여 라이브러리가 작동하는 경우에도이 게시물의 끝에있는 사람들에게 유용한 정보입니다.

당신은 확장 파일이 아직 활성화되지 않습니다 얻을 수있는 링크로 더 이상 초안을 사용할 수 없습니다 1

참고. 확장 파일을 사용하여 알파 또는 베타 버전을 먼저 업로드해야합니다. 확장 파일을 추가하는 것은 업로드하는 두 번째 apk에서만 가능합니다. 따라서 APK 아래의 개발자 게시 섹션에서 세부 정보를 클릭하면 apk 확장 파일이 표시됩니다.

주 2

당신이 안드로이드 스튜디오를 사용하고 그냥 자신의 응용 프로그램 src 디렉토리에 패키지 이름과 자바 파일을 복사하지 않는 다운로더 라이브러리를 사용하도록하려는 경우. eclipse에서 다운로더 라이브러리를 가져오고 export => gradle 빌드 파일을 선택하십시오. 그런 다음 라이브러리를 Android Studio에서 모듈로 가져올 수 있습니다.

주 3

이 확실하지만 또한 플레이 스토어를 통해이어야 한 번 응용 프로그램을 다운로드하여 테스트 장치의 계정에 대한 액세스 권한을 가지고 neccesary 생각하지 않습니다. 따라서 알파 작업을하는 경우 google + 테스트 그룹을 만들고 자신이나 다른 테스트 장치를 추가하십시오.

그냥 지 확인하세요 APK 확장 다운로드를 구현하기 매우 쉽게 이러한 라이브러리와 BTW

:

  1. 활동을 (당신이 확장의 다운로드 을 구현하려는 하나를 다운로드가 완료되지 않은 경우 팩 (자동으로 ))는 IDownloaderClient를 구현합니다.

  2. 서비스 & 수신기를 설정하고 매니페스트에 설정하십시오.

  3. 서비스 클래스의 BASE64_PUBLIC_KEY가 올바른지 여부. first apk => 개발자 콘솔 의 서비스 및 API에서 앱을 찾으십시오. =>이 앱의 라이센스 코드. 주 또는 패치 파일 중 하나를

    그것은 클래스 XAPKS 느릅 나무를 사용
    boolean expansionFilesDelivered() { 
        for (XAPKFile xf : xAPKS) { 
         String fileName = Helpers.getExpansionAPKFileName(this, xf.mIsMain, xf.mFileVersion); 
         Log.i(TAG, "Expansion filename " +fileName); 
         if (!Helpers.doesFileExist(this, fileName, xf.mFileSize, false)) 
          return false; 
        } 
        return true; 
    } 
    

    이 확장 파일을 나타내는, 수 :

이 코드는 확장 파일이 장치에서 찾을 수 있는지 확인하는 데 사용됩니다 특정 파일 크기 (바이트)를 가지며 apk 버전과 연결됩니다 (처음 추가 된 버전).

private static class XAPKFile { 
     public final boolean mIsMain; // true 
     public final int mFileVersion; //example 4 
     public final long mFileSize; //example 126515695L 
     // example => main expansion that was first introduced in apk version 4 and is 126515695 bytes in size 

     XAPKFile(boolean isMain, int fileVersion, long fileSize) { 
      mIsMain = isMain; 
      mFileVersion = fileVersion; 
      mFileSize = fileSize; 
     } 
    } 

그것 또한 아주 쉽게 구글이 제공 한 우편 도구 (com.android.vending.zipfile)를 사용하여 확장 파일에서 직접 동영상 파일 및 기타 물건을 읽을 수 있습니다.

라이브러리에서 제공된 메소드를 사용하여 확장 파일을 먼저 얻으십시오. 매개 변수는 기본 확장 apk 버전 (필요한 확장 팩이 처음 추가 된 apk 버전)과 패치 apk 버전을 나타내는 정수입니다.

ZipResourceFile expansionFile = APKExpansionSupport.getAPKExpansionZipFile(context, APKX_MAIN_APK, APKX_PATCH_APK); 

이 zipresourcefile에서 직접 비디오를 재생하려면 비디오

: 당신이 FileDescriptor에 얻을하고 MediaPlayer를이 사용할 수 있습니다이 assetFileDescriptor에서 지금

AssetFileDescriptor a = expansionFile.getAssetFileDescriptor(pathToFileInsideZip); 

, 올바른 구문을 얻을 수 있습니다 비디오를 재생할 미디어 플레이어도 두 번째와 세 번째 매개 변수가 필요합니다. 시작 오프셋과 길이를 AssetFileDescriptor에서 가져올 수 있습니다.

player.setDataSource(a.getFileDescriptor(), a.getStartOffset(), a.getLength()); 

기타 (이미지 같은) 다른 모든 것들 그냥 zipresourcefile의 inputstream의 얻을 수있는 경우 :

ALSO
expansionFile.getInputStream(pathToFileInsideZip);` 

것은 당신이 비디오를 압축하지 않는 확인을 이것에 대한 지퍼가 작동합니다! 예를 들어 파일을 MP4를 압축하지 :

zip -n .mp4 -r zipfile.zip . -x ".*" -x "*/.*" 
관련 문제