Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] java.lang.IllegalArgumentException

Bruno o seu problema é que você esta modificando o item visual em sua Thread, ou seja, um componente de tela dentro de um Thread. 

Há um bloqueio no Android para que não possa modificar componentes visuais nos app diretamente dentro de uma Thread. Para resolver o seu problema procure por Handler ou AsyncTask

2012/6/21 Bruno Rafael Sant Ana <bruno.santana.ti@gmail.com>
Olá,

por favor me ajudem, não sei o que estou fazendo de errado. Esse método executa e dá erro:

public void progresso() {
dao = new DAO(this);
if (dao.isEmpty()) {
progressDialog = ProgressDialog.show(this, "",
"Salvando todas as frases...");
new Thread(new Runnable() {
public void run() {
try {
dao.insert("uma string");
                                                progressDialog.dismiss();
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
}

Só para constar, assim ele funciona, só que sem o ProgressDialog:

public void progresso() {
dao = new DAO(this);
if (dao.isEmpty()) {
dao.insert("uma string");
                }
}

Para poderem analisar melhor segue o construtor dessa classe DAO que eu fiz:

public DAO(Context context) {
this.context = context;
Helper helper = new Helper(this.context);
this.bancoDeDados = helper.getWritableDatabase();
this.insertStatement = this.bancoDeDados.compileStatement(INSERT);
}

O erro que dá no LogCat é esse:

06-21 02:20:12.609: E/AndroidRuntime(20895): FATAL EXCEPTION: main
06-21 02:20:12.609: E/AndroidRuntime(20895): java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.android.java.frasesdiarias/br.com.android.java.frasesdiarias.FrasesDiariasActivity}: java.lang.IllegalArgumentException
06-21 02:20:12.609: E/AndroidRuntime(20895): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
06-21 02:20:12.609: E/AndroidRuntime(20895): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
06-21 02:20:12.609: E/AndroidRuntime(20895): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
06-21 02:20:12.609: E/AndroidRuntime(20895): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
06-21 02:20:12.609: E/AndroidRuntime(20895): at android.os.Handler.dispatchMessage(Handler.java:99)
06-21 02:20:12.609: E/AndroidRuntime(20895): at android.os.Looper.loop(Looper.java:130)
06-21 02:20:12.609: E/AndroidRuntime(20895): at android.app.ActivityThread.main(ActivityThread.java:3687)
06-21 02:20:12.609: E/AndroidRuntime(20895): at java.lang.reflect.Method.invokeNative(Native Method)
06-21 02:20:12.609: E/AndroidRuntime(20895): at java.lang.reflect.Method.invoke(Method.java:507)
06-21 02:20:12.609: E/AndroidRuntime(20895): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
06-21 02:20:12.609: E/AndroidRuntime(20895): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
06-21 02:20:12.609: E/AndroidRuntime(20895): at dalvik.system.NativeStart.main(Native Method)
06-21 02:20:12.609: E/AndroidRuntime(20895): Caused by: java.lang.IllegalArgumentException
06-21 02:20:12.609: E/AndroidRuntime(20895): at java.util.Random.nextInt(Random.java:186)
06-21 02:20:12.609: E/AndroidRuntime(20895): at br.com.android.java.frasesdiarias.FrasesDiariasActivity.sortearFrase(FrasesDiariasActivity.java:241)
06-21 02:20:12.609: E/AndroidRuntime(20895): at br.com.android.java.frasesdiarias.FrasesDiariasActivity.onCreate(FrasesDiariasActivity.java:42)
06-21 02:20:12.609: E/AndroidRuntime(20895): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
06-21 02:20:12.609: E/AndroidRuntime(20895): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
06-21 02:20:12.609: E/AndroidRuntime(20895): ... 11 more


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

0 comentários:

Postar um comentário