Android開發常見問題匯總
【錯誤資訊】 [2011-01-19 16:39:10 - ApiDemos] WARNING: Application does not specify an API level requirement![2011-01-19 16:39:10 - ApiDemos] Device API version is 8 (Android 2.2)原因:不影響正常運行。在AndroidManifest.xml檔案中沒有加API的版本號碼,在<manifest> </manifest> 之間加<uses-sdk android:minSdkVersion="3"></uses-sdk>[2011-01-19 16:55:04 - ApiDemos] Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE[2011-01-19 16:55:04 - ApiDemos] Please check logcat output for more details.[2011-01-19 16:55:05 - ApiDemos] Launch canceled!該裝置沒有足夠的儲存空間來安裝應用程式,【錯誤資訊】[2011-02-18 11:46:53] Failed to push selection: Is a directory原因:原先目錄已經有pkg_3.apk的檔案夾,再copy一個pkg_3.apk安裝檔案時出現問題,解決辦法,先刪除掉pkg_3.apk的檔案夾[2011-03-04 09:25:12 - ActivityMain]: DxUNEXPECTED TOP-LEVEL EXCEPTION:java.lang.IllegalArgumentException: already added: Lorg1/apache/commons/codec/net/RFC1522Codec;[2011-03-04 09:25:12 - ActivityMain]: Dx at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)[2011-03-04 09:25:12 - ActivityMain]: Dx at com.android.dx.dex.file.DexFile.add(DexFile.java:143).....[2011-03-04 09:25:12 - ActivityMain]: Dx1 error; aborting[2011-03-04 09:25:12 - ActivityMain] Conversion to Dalvik format failed with error 1原因:【錯誤資訊】啟動Eclipse時出現:this android sdk requires android developer toolkit version 10.0.0 or above.current version is 8.0.1.v201012062107-82219.please update adt to the latest version 原因:Eclipse的Android開發外掛程式版本過低,應該下載ADT-10.0.0,並且1. 啟動 Eclipse, 然後進入 Help > Install New Software.2. 在 Available Software 對話方塊裡,點擊 Add....【錯誤資訊】[2011-03-09 15:21:34 - Info] Failed to install Info.apk on device '?': Unable to open sync connection![2011-03-09 15:21:34 - Info] java.io.IOException: Unable to open sync connection![2011-03-09 15:21:34 - Info] Launch canceled!原因:關閉模擬器和eclipse,執行adb kill-server命令,然後重試一下【錯誤資訊】調用Webservice時出現java.net.SocketException: Permission denied (maybe missing INTERNET permission)原因:需要訪問到網路,所以,在AndroidManifest.xml中,需要進行如下配置: <uses-permission android:name="android.permission.INTERNET" />【錯誤資訊】org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG <{http://schemas.xmlsoap.org/wsdl/}wsdl:definitions targetNamespace='http://bo.webservice.nqbx.nq.com'>@2:603 injava.io.InputStreamReader@44a3a7b0)原因有可能是以下2個之一:1)Webservice伺服器的Soap版本為1.0,所以用戶端指定SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);VER11改為VER102)String serviceUrl = "http://200.200.200.11:10000/nqbx/service/InqBxWebService?wsdl";Url指的是你的webservice的地址.一般都是以***.wsdl或者***.?wsdl結束的...但是.需要注意的是..要去掉後面的.wsdl或者.?wsdl【錯誤資訊】在新的線程中 public class HttpThread extends Thread {...}增加一個彈出表單:new AlertDialog.Builder(this).setTitle("資料載入失敗").setMessage("請檢查網路連接情況") .setPositiveButton("OK", new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialoginterface, int i) { } }).show(); 原因及解決辦法://不能線上程中操作UI介面java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()修改後:new AlertDialog.Builder(com.nantsing.infoquery.chuanbo_detail.this).setTitle("資料載入失敗").setMessage("請檢查網路連接情況") .setPositiveButton("OK", new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialoginterface, int i) { }【錯誤資訊】The constructor AlertDialog.Builder(chuanbo_detail.HttpThread) is undefined 原因及解決辦法:在UI主線程之外是無法對UI組件進行控制的。因為你必須在新線程任務完成之後利用各種方法先UI主線程發送訊息通知任務完成從而來顯示各種提示訊息。線程間通訊方法有多種,常用的是用handler來傳遞訊息。如下:線程中構造訊息://構造訊息Message message = handle.obtainMessage();Bundle b = new Bundle();b.putString("tag", "1");message.setData(b);handle.sendMessage(message); 另外自訂訊息: /** * 捕獲訊息佇列 fubin.pan 2011-04-02 */Handler handler = new Handler() {public void handleMessage(Message m) {if (!m.getData().getString("tag").equals("1")){ ...}else{new AlertDialog.Builder(chuanbo_detail.this).setTitle("資料載入失敗").setMessage("請檢查網路連接情況!") .setPositiveButton("OK", new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialoginterface, int i) { } }).show();}}};【錯誤資訊】 android低版本工程(如1.5)放到高版本環境中(如2.2)可能會上述錯誤,解決方案如下:1。 如果不修改android sdk版本,則使用project clean 命令作用於某工程即可。 (該處理方式只是在高版本中相容了低版本工程,未真正意義上的升級)2。 如果修改android sdk版本,則需要以下幾個步驟: 1)修改SDK 選擇工程,build path --> configure build path ---> library 刪除引用的低版本SDK, 然後add External JARs,選擇高版本SDK,OK,儲存 2)修改classpath檔案 該檔案可能存在該項: <classpathentry kind="lib" path ="你所指定的高版本的地址" 把她修改成<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK" /> 3) 修改AndroidManifest.xml 在AndroidManifest.xml檔案中,application標籤後添加<uses-sdk android:minSdkVersion="3"></uses-sdk> 4) 修改default.properties(很重要) 該檔案最後一行(前面沒用#的)target=android-3 該成target=android-8,儲存。 再看看你的工程和建立的android 2.2的工程結構就一樣了。