2015-01-09 6 views
1

Я пытаюсь работать с Azure Blob Storage для Android приложения, следуя ниже ссылку: http://azure.microsoft.com/en-in/documentation/articles/storage-java-how-to-use-blob-storage/Ошибка ссылки на нулевой объект на container.createIfNotExists();

Я использую Android Studio

Я буду в порядке, пока я получаю исключение в строке:

container.createIfNotExists(); 

Эта линия дает ошибку:

Attempt to invoke interface method 'void com.android.okhttp.internal.http.Transport.writeRequestHeaders(com.android.okhttp.Request)' on a null object reference 

Ниже приведена мой импорт:

import com.microsoft.azure.storage.*; 
import com.microsoft.azure.storage.blob.*; 

Java-код:

try{ 
      System.out.print("Code Progess 2 "); 
      CloudStorageAccount account = CloudStorageAccount.parse(storageConnectionString); 
      System.out.print("Code Progess 3 "); 
      CloudBlobClient serviceClient = account.createCloudBlobClient(); 
      System.out.print("Code Progess 4 "); 

      // Container name must be lower case. 
      CloudBlobContainer container = serviceClient.getContainerReference("myimages"); 
      System.out.print("Code Progess 5 "); 
      container.createIfNotExists(); 
      System.out.print("Code Progess 6 "); 

      // Upload an image file. 
      CloudBlockBlob blob = container.getBlockBlobReference("image1.jpg"); 
      System.out.print("Code Progess 7 "); 
      File sourceFile = new File("<Path to local image storage>"); 
      System.out.print("Code Progess 8 "); 
      blob.upload(new FileInputStream(sourceFile), sourceFile.length()); 
      System.out.print("Code Progess 9 "); 

      // Download the image file. 
      File destinationFile = new File(sourceFile.getParentFile(), "image1Download.tmp"); 
      System.out.print("Code Progess 10 "); 
      blob.downloadToFile(destinationFile.getAbsolutePath()); 
      System.out.print("Code Progess 11 "); 
     } 

catch (Exception e) { 
      System.out.print("Exception encountered: "); 
      System.out.println(e.getMessage()); 
      System.exit(-1); 
     } 

LogCat, как показано ниже:

01-09 20:54:02.072 2271-2287/com.rollcall.blob W/art﹕ Verification of void com.microsoft.azure.storage.blob.CloudBlobContainer.create(com.microsoft.azure.storage.blob.BlobRequestOptions, com.microsoft.azure.storage.OperationContext) took 334.218ms 
01-09 20:54:02.140 2271-2287/com.rollcall.blob W/art﹕ Unresolved exception class when finding catch block: javax.xml.stream.XMLStreamException 
01-09 20:54:02.141 2271-2287/com.rollcall.blob I/System.out﹕ Code Progess 1 Code Progess 2 Code Progess 3 Code Progess 4 Code Progess 5 Exception encountered: Attempt to invoke interface method 'void com.android.okhttp.internal.http.Transport.writeRequestHeaders(com.android.okhttp.Request)' on a null object reference 

Может кто-нибудь сказать мне, где я неправильно?

Благодаря

+0

Покажите нам исключение stacktrace и соответствующий код. –

+0

Я добавил stacktrace и код. Спасибо –

ответ

1

руководство по началу работы вы ссылаетесь специально для Java. Используете ли вы клиентскую библиотеку Java или Android Azure Storage для своего образца? Существует отдельная клиентская библиотека Azure Storage для Android, которую вы должны использовать для создания приложений для Android.

Вы можете посмотреть на readme document в репозитории Github, чтобы начать. Пример кода при работе с blob также можно найти в репозитории here

+0

Спасибо Vinay, репозиторий действительно помог :) –