2014-09-25 72 views
0

據我所知(從here)LoopJ AndroidAsyncHttp不使用UI線程,因此我可以在主線程中執行它的方法。 但是當我intilize AsyncHttpClient的新實例的應用程序崩潰 (例外:java.lang.IllegalStateException:無法執行的活動的方法)Android應用程序初始化AndroidAsyncHttp時崩潰

代碼:

public class MainActivity extends ActionBarActivity { 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


} 

public void Send(View view) { 
    EditText editText = (EditText) findViewById(R.id.editText1); 
    String str = editText.getText().toString(); 
    TextView div = (TextView) findViewById(R.id.textView1); 
    div.setText(str); 
    //crash 
    AsyncHttpClient client = new AsyncHttpClient(); 

} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
} 

錯誤:

09-25 09:58:07.427: W/dalvikvm(2514): threadid=1: thread exiting with uncaught exception (group=0xb1cb2b20) 
09-25 09:58:07.477: E/AndroidRuntime(2514): FATAL EXCEPTION: main 
09-25 09:58:07.477: E/AndroidRuntime(2514): Process: com.example.mysecondapp, PID: 2514 
09-25 09:58:07.477: E/AndroidRuntime(2514): java.lang.IllegalStateException: Could not execute method of the activity 
09-25 09:58:07.477: E/AndroidRuntime(2514):  at android.view.View$1.onClick(View.java:3823) 
09-25 09:58:07.477: E/AndroidRuntime(2514):  at android.view.View.performClick(View.java:4438) 
09-25 09:58:07.477: E/AndroidRuntime(2514):  at android.view.View$PerformClick.run(View.java:18422) 
09-25 09:58:07.477: E/AndroidRuntime(2514):  at android.os.Handler.handleCallback(Handler.java:733) 
09-25 09:58:07.477: E/AndroidRuntime(2514):  at android.os.Handler.dispatchMessage(Handler.java:95) 
09-25 09:58:07.477: E/AndroidRuntime(2514):  at android.os.Looper.loop(Looper.java:136) 
09-25 09:58:07.477: E/AndroidRuntime(2514):  at android.app.ActivityThread.main(ActivityThread.java:5017) 
09-25 09:58:07.477: E/AndroidRuntime(2514):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-25 09:58:07.477: E/AndroidRuntime(2514):  at java.lang.reflect.Method.invoke(Method.java:515) 
09-25 09:58:07.477: E/AndroidRuntime(2514):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
09-25 09:58:07.477: E/AndroidRuntime(2514):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
09-25 09:58:07.477: E/AndroidRuntime(2514):  at dalvik.system.NativeStart.main(Native Method) 
09-25 09:58:07.477: E/AndroidRuntime(2514): Caused by: java.lang.reflect.InvocationTargetException 
09-25 09:58:07.477: E/AndroidRuntime(2514):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-25 09:58:07.477: E/AndroidRuntime(2514):  at java.lang.reflect.Method.invoke(Method.java:515) 
09-25 09:58:07.477: E/AndroidRuntime(2514):  at android.view.View$1.onClick(View.java:3818) 
09-25 09:58:07.477: E/AndroidRuntime(2514):  ... 11 more 
09-25 09:58:07.477: E/AndroidRuntime(2514): Caused by: java.lang.NoClassDefFoundError: com.loopj.android.http.AsyncHttpClient 
09-25 09:58:07.477: E/AndroidRuntime(2514):  at com.example.mysecondapp.MainActivity.Send(MainActivity.java:46) 
09-25 09:58:07.477: E/AndroidRuntime(2514):  ... 14 more 
+0

plz把你的'AsyncHttpClient'代碼 – Rustam 2014-09-25 17:30:43

+2

檢查你的'logcat'' 09-25 09:58:07.477:E/AndroidRuntime(2514):引起:java.lang.NoClassDefFoundError:com.loopj.android.http。 AsyncHttpClient' – Rustam 2014-09-25 17:34:33

+0

看起來你缺少一個依賴。請參閱[this](http://stackoverflow.com/questions/20327940/android-no-class-def-found-error-for-com-loopj-android-http-asynchttpclient)或[this](http:// stackoverflow.com/questions/16980159/no-class-def-found-error-android) – codeMagic 2014-09-25 17:34:40

回答

0

你得到一個NoClassDefFoundError爲com.loopj.android.http.AsyncHttpClient

如果你運行在IDE中,確保在.classpath文件中爲android-async-http-1.4.6.jar的classpatterntry添加exported =「true」。

0

我不得不將jar文件移動到「libs」文件夾,然後將jar添加到項目中......謝謝大家!