Reputation: 33
I am trying to work with Azure Blob Storage for an Android app by following the below link: http://azure.microsoft.com/en-in/documentation/articles/storage-java-how-to-use-blob-storage/
I am using Android Studio
I am going fine till I get an exception in the line:
container.createIfNotExists();
This line gives the error:
Attempt to invoke interface method 'void com.android.okhttp.internal.http.Transport.writeRequestHeaders(com.android.okhttp.Request)' on a null object reference
Below are my imports:
import com.microsoft.azure.storage.*;
import com.microsoft.azure.storage.blob.*;
The java code:
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);
}
The logcat is as below:
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
Can anyone tell me where I am going wrong?
Thanks
Upvotes: 2
Views: 1096
Reputation: 332
The getting started guide you refer to is specifically for Java. Are you using Java or Android Azure Storage client library for your sample? There is a separate android Azure Storage client library that you should use for building Android applications.
You can look at the readme document on Github repository to get started. Sample code on working with blob can also be found in the repository here
Upvotes: 1