Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] ERRO java.lang.IllegalStateException

Gostaria de agradecer a ajuda de vocês pela ajuda.
Fiz o que vocês sugeriram e deu certo.

Feliz 2013 !


Em 27 de dezembro de 2012 09:07, luciofm <luciofm@gmail.com> escreveu:
Você sempre pode salvar na memória interna, que o usuário não tem acesso.

Lúcio Maciel
luciofm@gmail.com


2012/12/27 Thalita Monteiro <temonteiroj@gmail.com>
Obrigada pela dica.
Estou fazendo isso, mas como fazer para que o usuário não apague ou delete algum arquivo que eu irei salvar no sdcard dele?


Em 26 de dezembro de 2012 15:58, Marcelo Henrique <marcelohd02@gmail.com> escreveu:

+1 @luciofm.


Em 26 de dezembro de 2012 16:54, luciofm <luciofm@gmail.com> escreveu:

Meu conselho é salvar a imagem em disco, e no banco salvar apenas o caminho para a imagem.

Lúcio Maciel
luciofm@gmail.com


2012/12/26 Thalita Monteiro <temonteiroj@gmail.com>
Boa tarde,
Possuo uma tabela no banco que tem uma coluna do tipo BLOB.
Quando eu realizo um select para listar somente a categoria que tem imagens em destaques ocorre o erro: java.lang.IllegalStateException: get field slot from row 0 col 0 failed android.

Em algumas pesquisas que eu realizei informaram que poderia ser o BLOB, pois a query só consegue armazenar no máximo 1MB e dependendo dos arquivos eles podem ultrapassar esse valor.
Alguém sabe se existe alguma lazy query ou alguma solução para corrigir esse erro?

Segue o log:

12-26 18:06:09.702: E/AndroidRuntime(2033): FATAL EXCEPTION: main
12-26 18:06:09.702: E/AndroidRuntime(2033): java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.jornalopovo.delivery.smart.activity/br.com.jornalopovo.delivery.activity.ExibirAnuncio}: java.lang.IllegalStateException: get field slot from row 0 col -1 failed
12-26 18:06:09.702: E/AndroidRuntime(2033): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
12-26 18:06:09.702: E/AndroidRuntime(2033): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
12-26 18:06:09.702: E/AndroidRuntime(2033): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
12-26 18:06:09.702: E/AndroidRuntime(2033): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
12-26 18:06:09.702: E/AndroidRuntime(2033): at android.os.Handler.dispatchMessage(Handler.java:99)
12-26 18:06:09.702: E/AndroidRuntime(2033): at android.os.Looper.loop(Looper.java:123)
12-26 18:06:09.702: E/AndroidRuntime(2033): at android.app.ActivityThread.main(ActivityThread.java:3683)
12-26 18:06:09.702: E/AndroidRuntime(2033): at java.lang.reflect.Method.invokeNative(Native Method)
12-26 18:06:09.702: E/AndroidRuntime(2033): at java.lang.reflect.Method.invoke(Method.java:507)
12-26 18:06:09.702: E/AndroidRuntime(2033): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
12-26 18:06:09.702: E/AndroidRuntime(2033): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
12-26 18:06:09.702: E/AndroidRuntime(2033): at dalvik.system.NativeStart.main(Native Method)
12-26 18:06:09.702: E/AndroidRuntime(2033): Caused by: java.lang.IllegalStateException: get field slot from row 0 col -1 failed
12-26 18:06:09.702: E/AndroidRuntime(2033): at android.database.CursorWindow.getLong_native(Native Method)
12-26 18:06:09.702: E/AndroidRuntime(2033): at android.database.CursorWindow.getLong(CursorWindow.java:380)
12-26 18:06:09.702: E/AndroidRuntime(2033): at android.database.AbstractWindowedCursor.getLong(AbstractWindowedCursor.java:108)
12-26 18:06:09.702: E/AndroidRuntime(2033): at br.com.jornalopovo.delivery.dao.AnunciosDAO.getTesteBlob(AnunciosDAO.java:376)
12-26 18:06:09.702: E/AndroidRuntime(2033): at br.com.jornalopovo.delivery.activity.ExibirAnuncio.getAnunciantePorCategoria(ExibirAnuncio.java:291)
12-26 18:06:09.702: E/AndroidRuntime(2033): at br.com.jornalopovo.delivery.activity.ExibirAnuncio.onCreate(ExibirAnuncio.java:79)
12-26 18:06:09.702: E/AndroidRuntime(2033): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-26 18:06:09.702: E/AndroidRuntime(2033): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
12-26 18:06:09.702: E/AndroidRuntime(2033): ... 11 more


Segue o código:
/* RECUPERA POR CATEGORIA */
public Cursor getCategoria(String categoria){
DbAdapter helper = new DbAdapter(contexto);
database = helper.open();
String[] colunas = new String[]{"nome","telefone","telefone1","telefone2","telefone3","categoria","destaque"};
Cursor cursor =
database.query(TABELA_ACIOS, colunas, "categoria ='" + categoria + "' AND destaque = 1", null, null, null, null);
if(cursor != null){
cursor.moveToFirst();
}
database.close();
return cursor;
}


public List<Anunciantes> getTesteBlob(String categoria){
Cursor cursor = getCategoria(categoria);
List<Anunciantes> anunciantes = new ArrayList<Anunciantes>();
if(cursor.moveToFirst()){
int id  = cursor.getColumnIndex("_id");
int nome  = cursor.getColumnIndex("nome");
int telefone  = cursor.getColumnIndex("telefone");
int telefone1 = cursor.getColumnIndex("telefone1");
int telefone2 = cursor.getColumnIndex("telefone2");
int telefone3 = cursor.getColumnIndex("telefone3");
int category  = cursor.getColumnIndex("categoria");
int imagem    = cursor.getColumnIndex("imagem");
int destaque  = cursor.getColumnIndex("destaque");
do{
Anunciantes anuncio = new Anunciantes();
anunciantes.add(anuncio);
anuncio.setId(cursor.getLong(id));
anuncio.setNome(cursor.getString(nome));
anuncio.setTelefone(cursor.getString(telefone));
anuncio.setTelefone1(cursor.getString(telefone1));
anuncio.setTelefone2(cursor.getString(telefone2));
anuncio.setTelefone3(cursor.getString(telefone3));
anuncio.setCategoria(cursor.getString(category));
anuncio.setImgB(cursor.getBlob(imagem));
anuncio.setDestaque(cursor.getString(destaque));
}while(cursor.moveToNext());
}
cursor.close();
return anunciantes;
}

Aguardo a ajuda. Obrigada.
--
Atenciosamente,
Thalita Monteiro Jorge.
Graduanda em Sistemas de Informação



   
"O importante é garantir os três pontos !"

--
 
 

--
 
 



--
                                              - Marcelo Henrique -
  "Se não puder se destacar pelo talento, vença pelo esforço." (Dave Weinbaum)

--
 
 



--
Atenciosamente,
Thalita Monteiro Jorge.
Graduanda em Sistemas de Informação



    
"O importante é garantir os três pontos !"

--
 
 

--
 
 



--
Atenciosamente,
Thalita Monteiro Jorge.
Graduanda em Sistemas de Informação



    
"O importante é garantir os três pontos !"

--
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário