天天看點

Android 各種報錯,各種被坑的節奏

今天悲劇了一大下,無語了徹底,現在的心情還久久不能平靜,原因就是在不必要的地方瞎耽誤了些許功夫。

說一下背景吧,就是之前在本地把項目的一些功能什麼的都完成了,準備往SVN的項目裡整合一下,結果老大在伺服器上建立項目的時候,Android SDK的版本是最新的,我們小的本地裡的版本還沒有及時更新上去,本來自己下載下傳一下就好了嘛,但是在這個搶網速已經到了無節操的時代,我對于更新Android SDK表示很有壓力。

不過老大開了一個共享檔案夾,可以直接将他的Android SDK拷到自己的本地,這到也沒什麼了。因為之前最開始的時候也是從他那拖的整套SDK。

然後各種問題也就接踵而來了,下面一一來表(不按問題發生順序)

1、提示:This Android SDK requires An... ADT to the latest version. 如圖:

Android 各種報錯,各種被坑的節奏

這個問題出現的原因是ADT(Android開發工具)的版本沒有跟上Android SDK的版本。對于ADT的配置其實是在我們最初在Eclipse上配置Android開發環境時就有的一步,隻不過時間一久就有點記憶模糊了。話說Android SDK4.4版本貌似變化很大,是以ADT應該也是要更新的,關于ADT的配置官網給出了步驟詳解。如圖:

Android 各種報錯,各種被坑的節奏

大家隻要進入【Help】-【Install New Software】-【Add】,按照上圖把名字填成ADT Plugin,把URL寫成官方給出的那個連結就行,如果小寫的https不好使的話,大家可以試試改成大寫的HTTPS或者改成http,然後點OK,如下圖,選擇【Developer Tools】和【NDK Plugins】兩項,然後下一步,确定就OK了。

Android 各種報錯,各種被坑的節奏

這樣ADT就算配置完成。

2、從SVN中檢出項目跟以前也有點不一樣,以前是直接就能把項目下載下傳到本地,現在不知道是什麼原因,下載下傳到本地的不是完整的項目。

這裡還要說一下從SVN上導入項目到本地的時候,我們應該選擇一個【做為新項目檢出】,也就是在本地建立一個與項目名稱一樣名字的項目。如圖:

Android 各種報錯,各種被坑的節奏

這塊有個小技巧教給大家如何快速建立一個本地項目,然後友善後續将無用檔案删除的方法。如圖:

Android 各種報錯,各種被坑的節奏

在【Application Name】處填寫與伺服器上相同的項目名稱,下面的【Project Name】和【Package Name】都會自動生成,然後不停的下一步,直到此處,如圖:

Android 各種報錯,各種被坑的節奏

這裡同樣隻填寫【Activity Name】處就行了,預設會是“MainActivitiy”,我的方法是在後面直接加幾個數字或字母就行,比如111或aaa,同樣下面的【Layout Name】和【Fragment Layout Name】也都會自動生成。

Android 各種報錯,各種被坑的節奏

點選确定後會出現如下提示,這個時候請點【Cancel】,這個東西還沒研究到底是什麼,但一定是Android SDK4.4版本裡的東東,看樣子好像跟主題樣式什麼的有關。大家隻要不進行覆寫就行了。

Android 各種報錯,各種被坑的節奏

現在建立的項目中我們會發現雖然項目名稱與伺服器上的一緻,但是根本就沒有伺服器上項目的檔案,這時候右鍵點選【Team】隻出現兩項,看不到【更新】等操作。出現這種情況我們可以用以下方法解決,如圖:

Android 各種報錯,各種被坑的節奏

然後一直點下去,在這裡選擇【使用已有資源庫位置】,下一步

Android 各種報錯,各種被坑的節奏

在這裡選擇【使用項目名稱做為檔案夾名】,下一步

Android 各種報錯,各種被坑的節奏

我們看會出現這個,建議選擇【No】,然後就完成了。

這個時候我們會發現伺服器上的檔案已經全部下載下傳到本地當中,我們再把先前建立的包(package)和布局檔案(layout.xml)删除就行了,由于名字都是特殊的,也就比較好找了。但是問題遠沒有結束。

3、報錯:activity_XXX cannot be resolved or is not a field

解決辦法:遇到這個問題或者提示的時候,大家可以看看是不是在加了import android.R或者别的什麼import XXX.R,如果有請删除。

4、繼續報錯:R cannot be resolved to a variable

這個時候不知道大家有沒有想罵街的沖動,反正我是有了,剛剛就是我們主動去把import XXX.R給删除的啊,難道還要加回去不成?當然不,這個時候我們需要進入AndroidManifest.xml檔案當中去,我們會發現package項的内容為我們最初建立項目時候的包名,這裡我們需要改成伺服器上的項目真正使用的包名,再檢視有沒有伺服器項目上對應的Activity(應該是沒有),如果沒有的話,我們就需要所有的Activity都注冊一下,然後設定一個啟動的Activity。如圖:

Android 各種報錯,各種被坑的節奏

繼續閱讀