開發中遇到的各種坑爹錯誤及修改
一、eclipse android開發配置
(1)、sdk更新失敗
出錯問題: 下載並解壓sdk之後,點選sdk manager.exe 下載更新,出現網址找不到的問題。
出錯原因:資源下載網站被遮蔽了,電腦不解析為ip地址
解決方案:1、在C:\Windows\System32\drivers\etc的hosts文件的最後加上74.125.237.1 dl-ssl.google.com,然後更新就不報錯了~
網上說該檔案是隻讀的,需複製到其他位置後在修改。
2、 如果在專案中已經關聯sdk需要刪除或者修改。
修改:window->perferences->android,選擇相關路徑,點選apply
刪除:window->perferences->android,點選restore defaults(大概是恢復預設值吧……)之後apply變為灰色……我就不會了,故選擇刪除adt
刪除adt方法:help->install new software裡deails下的what is already installed,其中already installed 是帶下劃線藍色字型,點選android
ddms和android development tools 點選 uninstall,再在彈出的視窗點選finish便可
安裝adt方法:help->install new software 點選add選擇相應路徑,再 點選next或者finish,便可。
解決這個錯誤之前:我的專案r.java無法編譯,也就是java檔案中R下畫紅線……註釋之後再執行,顯示找不到*.apk……
之後:紅線消失~~虛擬機器正常執行~~我為自己驕傲呀~~~~~
注:更新時間長,需耐心。用智慧手機做開發,虛擬機器反應更快些吧~
(2)、svn使用者更改(使用外掛的)
出錯問題:登陸一個使用者之後,儲存了密碼,就不在提示輸入使用者名稱、密碼。
解決方法:在c盤刪除一個資料夾,win7是隱藏資料夾中的~路徑:C:\Users\Administrator\AppData\Roaming\Subversion
刪除auth資料夾下的所有檔案便可~
(3)、虛擬機器啟動失敗
出錯問題:報emulator-5554 disconnected! Cancelling 'com.wj.test1.TestActivity activity launch'!錯誤 程式不能正常執行
出錯原因:記憶體不足
解決方法:1、關掉了防毒軟體,一切正常……有人說是防毒軟體攔截了,也許是吧……
2、上課時老師出現了相同問題,說是記憶體不足問題 ,在關掉一些程式後成功解決問題,並且在記憶體不足時虛擬機器會出現各種問題……
3、重建虛擬機器
(4)、avd中上下左右鍵不能用
出錯問題:虛擬機器鍵盤處的上下左右鍵上有一行英文,顯示avd中不可使用,滑鼠點選沒反應
解決方法:修改配置檔案,配置檔案路徑:C:\Users\Administrator\.android\avd\android2.avd\config.ini,其中android2是虛擬機器的名字。
在配置檔案中找到hw.dpad=no改正hw.dpad=yes。改完以後重啟虛擬機器,鍵盤就可用了。
(5)、onActivityResult不執行
出錯問題:傳值的時候onActivityResult不執行……
解決方法:這是程式設計問題,具體關於onActivityResult執行原理。
onActivityResult是在actvity結束之後執行,也就是執行onstop之後。onActivityResult寫在第一個頁面中,需注意:
1、oncreate做跳轉傳值時需設定requestcode的值,其值為整數。
2、作為傳值成功的證明,可在onActivityResult中判斷requestcode和resultcode碼例如:
String str=data.getStringExtra("tag_Extra");
if(requestCode==1&&resultCode==2){
Toast.makeText(this, "返回值:"+str, 0).show();
}
3、如果在跳轉之後謝了finish(),會呼叫ondestroy方法,介面被銷燬。那麼如果你第二介面仍然如下編輯,是跳不回去滴~~
在第二個介面事件程式碼:
Intent intent=new Intent();
intent.putExtra("tag_Extra", "+++++++++++++++++++Extra");
setResult(2,intent);
finish();
需注意事項:
1、intent不可做跳轉,否則第一個頁面重新建立,生命週期:oncreate->onstart 所以,
onActivityResult在oncreate執行之前大概被銷燬了。
Intent intent=new Intent();和回退很像,會呼叫onrestart。
2、必須設定finish(),不然不會跳轉,大概是傳遞不到第一個介面的onActivityResult。
注意:
將原始碼與專案連結的方法:
在系統包提供的方法或類上按住f3後不顯示程式碼,但有一button提示連線程式碼檔案,點選後的顯示對話方塊。
在系統對話方塊的右邊有兩個button點選第二個button,其為載入外部原始檔,選擇D:\Program Files\android-sdk-windows\sources\android-18。
也就是選擇jak安裝檔案的sources下的檔案。如果此方法沒用歡迎補充~
(6)、android 不支援wep app libraries 3.0
出錯問題:專案右鍵->build path->add libraries->wep add libraries 然後系統自動選擇專案,然後finish。
然後就報錯:build path contains duplicate entry:'org,eclipse.jst.j2ee.internal.web.container' for project '[專案名]'
解決方法:
1、修改專案系統檔案:
1)、檔案目錄:專案目錄下.setting/org.eclipse.wst.common.project.facet.core.xml
修改內容:<installed facet="jst.web" version="3.0"/>
改為:<installed facet="jst.web" version="2.5"/>
2)、檔案目錄:專案目錄下.classpath(如果第二步報錯時採取)
修改內容:<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
改為:刪除……
2、修改專案配置:
右擊專案->properties->project facets 選中dynamic web modile、java、javascript,
並把dynamic web modile版本調到2.5,此處可能會報錯;
右邊的選項卡點選runtimes,選中apache tomcat v7.0。
操作完後需重啟……
web專案是選中這幾個檔案的~~這樣也可把java專案變成web專案~~
(7)android 專案jdk升級
出錯問題:專案jdk升級到1.7以後,醒目名稱出現紅叉,但程式沒錯console報錯。
錯誤為: Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.
解決方法:1、專案名稱->android tools->fix project properties 但專案改回原來的jdk版本 求解
注:修改jdk的方法:專案名稱->propertise->java compiler->compiler compliance setting 修改版本即可
(8)MenuDrawer menuDrawer = MenuDrawer.attach(this)
出錯問題: 依賴MenuDrawer開源包做側滑選單,使用 MenuDrawer.attach(this)時報錯
檢視程式碼之後發現其相等同於 MenuDrawer.attach(this,MENU_DRAG_CONTENT,Position.LEFT);
在程式碼中是使用兩個方法封裝的,而我使用上一句時並未出現錯誤……
解決方法:事實再次證明,這兩句確實是相同的……是我錯了
(9)selector 中設定了背景和字型顏色 但不顯示
出錯問題:selector 中的程式碼:
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="#fff"
android:drawable="@drawable/citybutton_bg_2" />
<item
android:color="#aaa"
android:drawable="@drawable/citybutton_bg_1"/>
</selector>
按鈕按下時,字型改變顏色,背景不顯示。
解決方法:將字型顏色設定到color中,讀取color中的顏色設定到android:color中,如以下所示
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="@color/main_click_color"
android:drawable="@drawable/citybutton_bg_2" />
<item
android:color="@color/main_unclick_color"
android:drawable="@drawable/citybutton_bg_1"/>
</selector>
注:雖然定義了兩個,但如果控制元件只設置了background,未設定textcolor,點選時字型顏色不會變化始終為黑色。
設定android:textcolor="@drawable/xx",後字型才會改變顏色