2013-02-25 3 views
0

Я пытаюсь вставить изображение в Разбираем облако, но я получаю сообщение об ошибке Вот мой код:вставки изображения получения ошибки асинхронной

public void uploadImage() { 
File f = new File("/mnt/sdcard/test.jpg"); 
Bitmap bmp = BitmapFactory.decodeFile(f.getAbsolutePath()); 
ParseFile file = new ParseFile("test.jpg",bitmapToByteArray(bmp)); 
file.saveInBackground(); 
test = new ParseObject("Testing"); 
test.put("images", file); 
test.saveInBackground();  
} 

И код ошибки из LogCat:

02-25 12:08:53.259: E/AndroidRuntime(12444): FATAL EXCEPTION: AsyncTask #2 
02-25 12:08:53.259: E/AndroidRuntime(12444): java.lang.RuntimeException: An error occured while executing doInBackground() 
02-25 12:08:53.259: E/AndroidRuntime(12444): at android.os.AsyncTask$3.done(AsyncTask.java:200) 
02-25 12:08:53.259: E/AndroidRuntime(12444): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 
02-25 12:08:53.259: E/AndroidRuntime(12444): at java.util.concurrent.FutureTask.setException(FutureTask.java:124) 
02-25 12:08:53.259: E/AndroidRuntime(12444): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) 
02-25 12:08:53.259: E/AndroidRuntime(12444): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
02-25 12:08:53.259: E/AndroidRuntime(12444): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068) 
02-25 12:08:53.259: E/AndroidRuntime(12444): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561) 
02-25 12:08:53.259: E/AndroidRuntime(12444): at java.lang.Thread.run(Thread.java:1096) 
02-25 12:08:53.259: E/AndroidRuntime(12444): Caused by: java.lang.RuntimeException: This query has an outstanding network connection. You have to wait until it's done. 
02-25 12:08:53.259: E/AndroidRuntime(12444): at com.parse.ParseFile.assertNotRunning(ParseFile.java:126) 
02-25 12:08:53.259: E/AndroidRuntime(12444): at com.parse.ParseFile.save(ParseFile.java:264) 
02-25 12:08:53.259: E/AndroidRuntime(12444): at com.parse.ParseFile.save(ParseFile.java:258) 
02-25 12:08:53.259: E/AndroidRuntime(12444): at com.parse.ParseObject.deepSave(ParseObject.java:1527) 
02-25 12:08:53.259: E/AndroidRuntime(12444): at com.parse.ParseObject.save(ParseObject.java:924) 
02-25 12:08:53.259: E/AndroidRuntime(12444): at com.parse.ParseObject$5.run(ParseObject.java:957) 
02-25 12:08:53.259: E/AndroidRuntime(12444): at com.parse.ParseObject$5.run(ParseObject.java:954) 
02-25 12:08:53.259: E/AndroidRuntime(12444): at com.parse.BackgroundTask.doInBackground(BackgroundTask.java:39) 
02-25 12:08:53.259: E/AndroidRuntime(12444): at com.parse.BackgroundTask.doInBackground(BackgroundTask.java:1) 
02-25 12:08:53.259: E/AndroidRuntime(12444): at android.os.AsyncTask$2.call(AsyncTask.java:185) 
02-25 12:08:53.259: E/AndroidRuntime(12444): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
02-25 12:08:53.259: E/AndroidRuntime(12444): ... 4 more 

Я не знаю, что это вызывает ошибку, пожалуйста, помогите мне и спасибо заранее

+1

Я понятия не имею об этом API, я никогда не использовал его, я просто надеялся, чтобы подтолкнуть вас в правильном направлении :-) –

+0

спасибо брат – user1708134

ответ

0

я должен изменить его к этому

public void uploadImage() { 
     test = new ParseObject("Testing"); 
     File f = new File("/mnt/sdcard/test.jpg"); 

     Bitmap bmp = BitmapFactory.decodeFile(f.getAbsolutePath()); 
     file = new ParseFile("test.jpg",bitmapToByteArray(bmp)); 
     file.saveInBackground(new SaveCallback() { 

      @Override 
      public void done(ParseException e) { 
       // TODO Auto-generated method stub 

       test.put("images", file); 
       test.saveInBackground(); 
      } 
     }); 
} 
1

Вы пытаетесь одновременно сохранить файл и объект, который его содержит - видимо, это запрещено в рамках используемой структуры. Таким образом, либо не делайте этого, либо выполните следующий вызов как успешный/полный обратный вызов для первого вызова.

Вот несколько родственных связей (кстати нашел их прибегая к помощи исключения):

Exception "This query has an outstanding network connection.." on Android 2.2

Why am I getting a "This object has an outstanding network connection" NSInternalInconsistencyException?

1

Просто избавиться от вызова file.saveInBackground(). Сохранение объекта будет обрабатываться автоматически.

Смежные вопросы