Android常見(jiàn)錯(cuò)誤匯總
16.交互性的button定義的方法:
首先是準(zhǔn)備好按鈕不同狀態(tài)的圖片
然后 在res/drawable中定義selector的xml文件
最后Button的background屬性中設(shè)置
android:id=@+id/btnAdd
android:layout_width=wrap_content
android:layout_height=wrap_content
android:background=@drawable/addbtn_selector/>
17在超級(jí)終端中執(zhí)行程序報(bào)錯(cuò)-Permission deny
參照http://android.stackexchange.com ... fo-on-error-message
主要原因是不能在sdcard中執(zhí)行,直接進(jìn)入data/目錄下面創(chuàng)建文件,然后執(zhí)行就可以了。
18.從svn導(dǎo)入工程項(xiàng)目有驚嘆號(hào)
錯(cuò)誤提示Archive for required library: 'libs/armeabi/libvudroid.so' in project 'DocumentViewer' cannot be read or is not a valid ZIP file
主要是路徑出了問(wèn)題
解決方法:在project的build-path將外部包(庫(kù))的引用刪掉就可以了。
19.首次進(jìn)入帶有EditText的Activity不自動(dòng)彈出軟鍵盤(pán),再次點(diǎn)擊才彈出。
只有設(shè)置manifest的方法有用,在activity的設(shè)置中添加:
[html] view plaincopyprint?
android:windowSoftInputMode=adjustPan|stateHidden
20.Gallery中OnItemClickListener與OnItemSelectedListener的區(qū)別
OnItemClickListener:只有單擊Gallery中的View才會(huì)觸發(fā)事件,準(zhǔn)確的說(shuō)是當(dāng)點(diǎn)擊之后抬起手的時(shí)候觸發(fā),滑動(dòng)不會(huì)觸發(fā)。
OnItemSelectedListener:當(dāng)Gallery中的View被選中的時(shí)候就會(huì)觸發(fā),Galler初次顯示就會(huì)觸發(fā)一次,選中第一個(gè)iew,滑動(dòng)和單擊都會(huì)觸發(fā)。
20.從16進(jìn)制中提取顏色的rgb分量。
主要就是通過(guò)位運(yùn)算來(lái)實(shí)現(xiàn)。
[java] view plaincopyprint?
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
int INK_COLOR = 0xFF11ef23;
float r = getColorR(INK_COLOR );
float g = getColorG(INK_COLOR );
float b = getColorB(INK_COLOR );
System.out.print(r+ +g+ +b);
}
public static float getColorR(int c)
{
int R = (c 0x00FF0000 )>>16;
return (float) (R/255.0);
}
public static float getColorG(int c)
{
int G =(c 0x0000FF00 )>>8;
return (float) (G/255.0);
}
public static float getColorB(int c)
{
int B = c 0x000000FF;
return (float) (B/255.0);
}
}
21. Eclipse中簽名導(dǎo)出apk崩潰,手動(dòng)簽名。
工程沒(méi)問(wèn)題,調(diào)試也沒(méi)問(wèn)題,但打包的時(shí)候eclipse會(huì)崩潰,解決方法是手動(dòng)打包。
首先去工程目錄下的bin文件夾下找到apk文件,解壓后刪除META-INF文件夾,重新打包成壓縮包,改后綴名為.apk
首先是簽名(假設(shè)你已經(jīng)在根目錄下生產(chǎn)了密鑰keystore):
進(jìn)入java安裝目錄/bin文件夾下:
[plain] view plaincopyprint?
./jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore android.keystore ~/Output.apk android
然后是優(yōu)化,進(jìn)入sdk的tools文件夾下,運(yùn)行。
[plain] view plaincopyprint?
./zipalign -v 4 ~/Output.apk Output_realase.apk
當(dāng)前目錄下Output_realase.apk就是打包簽名好的apk了。
22.android.view.InflateException: Binary XML file line #異常的解決
創(chuàng)建自定義view的時(shí)候,碰到 android.view.InflateException: Binary XML file line #異常,反復(fù)研究
后發(fā)現(xiàn)是缺少一個(gè)構(gòu)造器造成。
[java] view plaincopyprint?
public MyView(Context context,AttributeSet paramAttributeSet)
{
super(context,paramAttributeSet);
}
補(bǔ)齊這個(gè)構(gòu)造器,異常就消失了.
23.將assets文件夾中的壓縮包拷貝到sdcard中(不限大小)
[java] view plaincopyprint?
public static void copyAssetToSdcard(Context c, String assetFile, String destination) throws IOException {
InputStream in = c.getAssets().open(assetFile);
File outFile = new File(destination);
OutputStream out;
Log.v(Try, Try coping.);
try {
if (!(new File(destination)).exists()) {
Log.v(Try, Not exists..);
out = new FileOutputStream(outFile);
copyFile(in, out);
in.close();
in = null;
out.flush();
out.close();
out = null;
}
} catch (Exception e) {
Log.v(Error, Error in if。);
}
}
public static void copyFile(InputStream in, OutputStream out) throws IOException {
Log.v(Coping, copyFiling.);
byte[] buffer = new byte[1024];
int read;
while ((read = in.read(buffer)) != -1) {
Log.v(read:, + read);
評(píng)論