2012-12-10 127 views
3

我試圖讓我的應用程序下載一個擴展文件。 這裏是我的主:Android擴展文件 - 找不到資源

package tm.down.rob; 

import com.google.android.vending.expansion.downloader.DownloadProgressInfo; 
import com.google.android.vending.expansion.downloader.DownloaderClientMarshaller; 
import com.google.android.vending.expansion.downloader.Helpers; 
import com.google.android.vending.expansion.downloader.IDownloaderClient; 

import android.app.Activity; 
import android.app.PendingIntent; 
import android.content.Intent; 
import android.os.Bundle; 
import android.os.Messenger; 
import android.util.Log; 
import android.widget.ProgressBar; 
import android.widget.TextView; 

public class main extends Activity implements IDownloaderClient { 
    /** Called when the activity is first created. */ 

    TextView tv1; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     ////////// 
     tv1 = (TextView)findViewById(R.id.textView1); 
     ////////// 

     // Check whether the file have been downloaded. 
     String mainFileName = Helpers.getExpansionAPKFileName(this, true, 1); 
     boolean fileExists = Helpers.doesFileExist(this, mainFileName, 32921796L, false); 

     if (!fileExists) { 
     Intent launcher = getIntent(); 
     Intent fromNotification = new Intent(this, getClass()); 
     fromNotification.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     fromNotification.setAction(launcher.getAction()); 

     if (launcher.getCategories() != null) { 
     for (String cat : launcher.getCategories()) { 
     fromNotification.addCategory(cat); 
     } 
     } 

     PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, fromNotification, PendingIntent.FLAG_UPDATE_CURRENT); 

     try { 

     int result = DownloaderClientMarshaller.startDownloadServiceIfRequired(this, pendingIntent, ExpansionFileDownloaderService.class); 
     if (DownloaderClientMarshaller.NO_DOWNLOAD_REQUIRED != result) { 

      // implement Downloading UI. 
      tv1.setText("Need to download."); 

     return; 
     } 

     } catch (Exception e) { 
     Log.e("apk-expansion-files", "NameNotFoundException occurred. " + e.getMessage(), e); 
     } 
     } 

     tv1.setText("Downloaded!"); 

    } 


    /////////////////////////////////////////////////// 


    @Override 
    public void onServiceConnected(Messenger m) { 
     tv1.setText("onServiceConnected: " + m.toString()); 
    } 

    /////////// 

    @Override 
    public void onDownloadStateChanged(int newState) { 
     tv1.setText("onDownloadStateChanged: " + String.valueOf(newState)); 
    } 

    //////////// 

    @Override 
    public void onDownloadProgress(DownloadProgressInfo progress) { 
     ProgressBar mPB = (ProgressBar)findViewById(R.id.progressBar1); 

     progress.mOverallTotal = progress.mOverallTotal; 
     mPB.setMax((int) (progress.mOverallTotal >> 8)); 
     mPB.setProgress((int) (progress.mOverallProgress >> 8)); 
     //mProgressPercent.setText(Long.toString(progress.mOverallProgress * 100/progress.mOverallTotal) + "%"); 
     //mProgressFraction.setText(Helpers.getDownloadProgressString(progress.mOverallProgress,progress.mOverallTotal)); 

    } 

    //////////// 




} 

我編制的APK並將其上傳到一個zip文件標記更名爲main.1.tm.down.rob.obb但儘管如此,當我運行我的應用程序,它拋出我「下載失敗,因爲資源找不到」...

任何想法?謝謝!

+0

嗨,我有同樣的問題,如果你找到解決方案,請讓我知道 –

+0

@SameerZ。你是如何解決這個問題的? –

回答

0

我有,當我試圖用使用下載庫apklib +罐子部署到我的Maven倉庫同樣的問題https://github.com/mosabua/maven-android-sdk-deployer

當使用這個搖籃構建腳本我已經重新部署的下載庫,我的Maven倉庫:

buildscript { 
    repositories { 
    mavenCentral() 
    } 

    dependencies { 
    classpath 'com.android.tools.build:gradle:0.11.+' 
    } 
} 

apply plugin: 'android-library' 
apply plugin: 'maven' 

repositories { 
    maven { 
    url "http://repository_url/nexus/content/repositories/release" 
    } 
    maven { 
    url "http://repository_url/nexus/content/repositories/release/" 
    } 
    mavenCentral() 
} 

dependencies { 
    compile 'com.google.android.licensing:play-licensing:[email protected]' 
} 

android { 
    compileSdkVersion 19 
    buildToolsVersion '19.1' 

    sourceSets { 
    main { 
     assets.srcDirs  = ['assets'] 
     res.srcDirs   = ['res'] 
     aidl.srcDirs   = ['src'] 
     resources.srcDirs = ['src'] 
     renderscript.srcDirs = ['src'] 
     java.srcDirs   = ['src'] 
     manifest.srcFile 'AndroidManifest.xml' 
    } 
    } 
} 

uploadArchives { 
    repositories { 
    mavenDeployer { 
     repository(url: "http://repository_url/nexus/content/repositories/release/") { 
     authentication(userName: "user", password: "password") 
     } 

     pom.version = "3.0.0" 
     pom.artifactId = "play-apk-expansion-downloader" 
     pom.groupId = "com.google.android.apk.expansion" 
    } 
    } 
} 

和改變依賴於AAR包:

dependencies { 
    compile 'com.google.android.apk.expansion:play-apk-expansion-downloader:[email protected]' 
} 

它開始工作。