我正在尝试使用Azure Blob Storage for Android应用程序,方法如下: http://azure.microsoft.com/en-in/documentation/articles/storage-java-how-to-use-blob-storage/
我正在使用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 :(得分:1)
您参考的入门指南专门针对Java。您是否在为样本使用Java或Android Azure存储客户端库?您应该使用单独的Android Azure存储客户端库来构建Android应用程序。
您可以查看Github存储库上的readme document以开始使用。使用blob的示例代码也可以在存储库here
中找到