2016-04-12 22 views
0

Dropbox'ta kayıtlı bir dosyayı indirmek için Dropbox SDK kullanıyorum.Android kullanımı Dropbox Api java.lang.VerifyError: com/dropbox/client2/RESTUtility

@Override 
public void downloadData() { 
    String filePath = getApplicationContext().getFilesDir().getPath().toString() + "/routes.xlsx"; 
    File file = new File(filePath); 
    try { 
     FileOutputStream outputStream = new FileOutputStream(file); 
     DropboxAPI.DropboxFileInfo info = mDBApi.getFile("routes.xlsx", null, outputStream, null); 
     Log.i("DbExampleLog", "The file's rev is: " + info.getMetadata().rev); 
     RemoteResourcesLogic remoteResourcesLogic = new RemoteResourcesLogic(); 
     remoteResourcesLogic.read(filePath); 
    } catch (Exception e) { 
     Log.i("DbExampleLog", "Error getting folder"); 
    } 

} 

sorun tam olduğu: Bir AsynTask içinde bu yöntemi kullanmak DropboxAPI.DropboxFileInfo bilgi = mDBApi.getFile ("routes.xlsx", boş OutputStream, NULL);

ben libs klasöründeki tüm gerekli .jar vardır:

  • httpcore-4.0.1.jar
  • junit-4.10.jar
  • json_simple-1.1.jar
  • httpmime-4,0. 3.jar
  • httpclient-4.0.3.jar
  • dropbox'ı-robot-sdk-1.6.3.jar
  • bcprov-jdk16-146.jar

Ve iki kavanoz dosyalarını XSLX okumak için:

  • aa-poi-3.10-min-0.1.5.jar
  • aa-poi-OOXML şemalar-3.10-azaltılmış-daha fazla- 0.1.5.jar

Birisi bana yardımcı olabilir mi? documentation bir VerifyError göre

Selamlar

FATAL EXCEPTION: AsyncTask #1 

Process: com.curiocity.android, PID: 28885 
java.lang.RuntimeException: An error occured while executing doInBackground() 
at android.os.AsyncTask$3.done(AsyncTask.java:300) 
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) 
at java.util.concurrent.FutureTask.setException(FutureTask.java:222) 
at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
at java.lang.Thread.run(Thread.java:841) 
Caused by: java.lang.VerifyError: com/dropbox/client2/RESTUtility 

at com.dropbox.client2.DropboxAPI.getFileStream(DropboxAPI.java:1544) 
at com.dropbox.client2.DropboxAPI.getFile(DropboxAPI.java:1497) 
at com.curiocity.admin.ImportRoutesActivity.downloadData(ImportRoutesActivity.java:111) 
at com.curiocity.admin.ImportRoutesActivity$DownloadData.doInBackground(ImportRoutesActivity.java:125) 
at com.curiocity.admin.ImportRoutesActivity$DownloadData.doInBackground(ImportRoutesActivity.java:121) 
at android.os.AsyncTask$2.call(AsyncTask.java:288) 
at java.util.concurrent.FutureTask.run(FutureTask.java:237) 

cevap

0

gösterir:

Geçmişte

Thrown when the VM notices that an attempt is made to load a class which does not pass the class verification phase.

, bunu görmüştüm zaman 'kütüphane, örneğin json_simple-1.1.jar, degildim t düzgün eklenmiş. Dropbox-android-sdk-1.6.3.jar ve json_simple-1.1.jar dosyasını nasıl yükledikten sonra tekrar kontrol edebilir misiniz? talimatları burada bulunabilir: Android Studio kullanıyorsanız

https://www.dropbox.com/developers-v1/core/sdks/android

, sen tıklayın ikisi için "kütüphanede olarak ekle" emin olun. Ayrıca

, bir "/" ile başlamalıdır Dropbox API için bu dosya yollarını, bu nedenle bu çizgiyi not:

DropboxAPI.DropboxFileInfo info = mDBApi.getFile("routes.xlsx", null, outputStream, null);

olmalıdır:

DropboxAPI.DropboxFileInfo info = mDBApi.getFile("/routes.xlsx", null, outputStream, null);

+0

teşekkürler Greg. MDBApi.getFile ("routes.xlsx", null, outputStream, null) "/" dizinlerini ekledim; Android Studio'da Proje görünümüne geçiyorum ve libs klasörünü görebiliyorum ve json_simple-1.1.jar ve dropbox-android-sdk-1.6.3.jar için "Kitaplık olarak ekle" seçeneklerini göremiyorum. Bana yardım edebilir misin lütfen? Saygılar – user2316075

+0

"Kitaplık olarak ekle" seçeneği yoksa, büyük olasılıkla bunu zaten yapmış olabilirsiniz. Belki de kavanozları çıkarmayı ve yeniden eklemeyi deneyin. – Greg