Android開發中常見問題小結
解決辦法:eclipse -> window -> Preferences -> Android ->
DDMS -> ADB connection time out(ms).把這個時間設定的長一些,預設是5秒,
改成20秒就可以了。
2、找不到activity類: android.content.ActivityNotFoundException: Unable to find explicit activity class {xxxx}
解決辦法:在AndroidMainifest.xml中增加activity的申明
如:<activity android:name=".xxxActivity" >
8、 在新的執行緒中 public class HttpThread extends Thread {...}
增加一個彈出窗體: new AlertDialog.Builder(this).setTitle("資料載入失敗").setMessage("請檢查網路連線情況") .setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialoginterface, int i){} }).show(); 出現:java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare(); 解決辦法: 不能線上程中操作UI介面,應該按如下方法: new AlertDialog.Builder(com.nantsing.infoquery.chuanbo_detail.this).setTitle("資料載入失敗").setMessage("請檢查網路連線情況") .setPositiveButton("OK", new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialoginterface, int i){} 9、Android如何動態改變ImageView的大小 解決辦法:在layout.xml檔案中定義了ImageView的絕對大小後,無法動態修改以後的大小顯示,其實平臺在設計UI控制元件時考慮到這個問題,為了適應不同的Drawable可以通過在xml的相關ImageView中加入android:scaleType="fitXY" 這行即可,但因為使用了縮放可能會造成當前UI有所變形。使用的前提是限制ImageView所在的層,可以使用一個內嵌的方法限制顯示。 10、Android中bitmap的平移操作如何完成? 解決辦法:對於平移我們可以通過Canvas類的public void translate (float dx, float dy) 方法來實現,引數一為平面x軸的位置,型別為浮點型,引數二為y軸的位置。不使用Matrix類,我們可以直接構造一個空的Bitmap物件,通過Canvas類提供的drawBitmap方法畫出我們需要的Bitmap物件,然後呼叫translate方法來實現平移,比如將點陣圖向右平移2個畫素,可以為translate(2,0) 而向下移動3個畫素translate(0,-3)。 11、Android中ListView在ScrollView中無法正常顯示 解決辦法:對於ListView放在ScrollView中時,目前Android平臺仍然存在bug,狀態是顯示的ListView僅僅是一行半。通過Layout佈局屬性設定目前仍然無法修正。通過分析ListView和ScrollView的構造沒有發現好的解決辦法。但是可以通過自己實現ListView來解決。一種方案是:重寫ListView的onMeasure()重新計算顯示行數。第二種方案是:使用RelaiveLayout佈局方式,可以滿足ScrollView構造。 12、Android中Drawable,Bitmap,Canvas以及Paint的關係與區別? Bitmap - 稱作點陣圖,一般點陣圖的檔案格式字尾為bmp,當然編碼器也有很多如RGB565、RGB888。作為一種逐畫素的顯示物件執行效率高,但是缺點也很明視訊記憶體儲效率低。我們理解為一種儲存物件比較好。 Drawable - 作為Android平下通用的圖形物件,它可以裝載常用格式的影象,比如GIF、PNG、JPG,當然也支援BMP,當然還提供一些高階的視覺化物件,比如漸變、圖形等。 Canvas - 名為畫布,我們可以看作是一種處理過程,使用各種方法來管理Bitmap、GL或者Path路徑,同時它可以配合Matrix矩陣類給影象做旋轉、縮放等操作,同時Canvas類還提供了裁剪、選取等操作。 Paint - 我們可以把它看做一個畫圖工具,比如畫筆、畫刷。他管理了每個畫圖工具的字型、顏色、樣式。 開發工具為Android Studio 編譯工具為gradle,-
Execution failed for task ':mergeDebugResources'
錯誤2:Execution failed for task ':mergeDebugResources'.
> Error: Failed to run command:
D:\soft_dev\android-sdk-windows\android-sdk-windows\build-tools\19.1.0\a
apt.exe s -i E:\Aworkspace\NewWorkspace\VipOneToOneGradleTest\res\drawable-xhdpi
\white.png -o E:\Aworkspace\NewWorkspace\VipOneToOneGradleTest\build\intermediat
es\res\debug\drawable-xhdpi-v4\white.png
Error Code:
42
Output:
libpng error: Not a PNG file
解決:這時候是不是感覺很迷茫,出錯了對吧,下面就告訴你是怎麼回事,怎麼出錯的。
錯誤很簡單卻也很難發覺,原因就是在這張圖片上,為什麼是圖片上呢,剛開始的時候你的圖片是不是.jpg格式的,然而你把字尾名改成了.png的以為就可以了是吧,其實不是這樣,你只是把格式改成了.png,其實它還是.jpg格式的。要將圖片真正轉換成.png格式的才行。隨便找個圖片轉換工具就可以解決。
注意:在存放圖片時千萬不要將格式為.jpg的圖片改成.png格式,千萬不要偷懶,一定要將格式轉換成PNG格式的圖片,否則編譯將不通過。切記!!!! -
Missing one of the key attributes 'action#name,category#name' on element
intent-filter at AndroidManifest.xml:342:13
Output:
res\drawable-xhdpi-v4\white.png:0: error: Resource entry white is alread
y defined.
res\drawable-xhdpi-v4\white.jpg:0: Originally defined here.
ce\NewWorkspace\Vi
非法字元: \65279
解決:
由於java檔案是已utf-8-bom的形式儲存的,至於為何導致了這種情況,無需考究,通過editplus開啟檔案就可以看到。然後另存為utf-8形式就可以了。再將修改了編碼的檔案替換專案中報錯的檔案,錯誤就解決了 -
FAILURE: Build failed with an exception.
* What went wrong:Execution failed for task ':lint'.> Lint found errors in the project; aborting build.
Fix the issues identified by lint, or add the following to your build script to proceed with errors:
android {lintOptions {
abortOnError false
}
}
解決:這種錯誤根據英文提示直接解決就可以了