a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > Android常見錯誤匯總

Android常見錯誤匯總

作者: 時間:2016-10-08 來源:網絡 收藏

1.R.java消失或解析異常

本文引用地址:http://www.j9360.com/article/201610/305868.htm

查看res中資源文件,圖片,xml等。比如圖片文件名不能有大寫不能有空格。

搞定錯誤之后Project->clean就可以了。

2.自定義title欄。

首先要z在values->styles中定義一個style,然后在mainfest文件中設置android:theme.

最后在Activity中按照這個順序寫:

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

setContentView(R.layout.activity_main);

getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_layout);

3.SQLite isFirst和isBeforeFirst方法的區別:

看下面一段代碼

Cursor c = queryTheCursor(type);

if(c.moveToLast())

while (!c.isBeforeFirst()) {

String tmpContent = new String();

tmpContent = c.getString(c.getColumnIndex(content));

contents.add(tmpContent);

c.moveToPrevious();

}

c.close();

代碼的作用是逆序輸出表中的內容,第三行如果用的是isFirst()的話就無法輸出第一行,正確做發是用isBeforeFirst()。

4.eclipse刪除空行

在eclipse中刪除某一行就用ctrl+D快捷鍵。如果你想刪除一個文件中的所有空行呢。

可以用下面方法。

1)打開源碼編輯器

2)使用快捷鍵Ctrl+f

3)在Find輸入框中輸入:^s*n

4)Replace With輸入框的值為空

5)在【Options】選中的Regular expressions

6)點擊【Replace All】按鈕。

7)OK!

5.getX()和getRawX()的區別

getX()是表示Widget相對于自身左上角的x坐標

而getRawX()是表示相對于屏幕左上角的x坐標值(注意:這個屏幕左上角是手機屏幕左上角,不管activity是否有titleBar或是否全屏幕),getY(),getRawY()一樣的道理

6.imagView居中顯示問題

xml設置如下:

android:layout_width=fill_parent

android:layout_height=wrap_content

android:layout_gravity=center

android:orientation=vertical >

android:layout_width=wrap_content

android:layout_height=wrap_content

android:id=@+id/myImageView

android:layout_gravity=center

android:scaleType=matrix

android:src=@drawable/pic >

7.synchronized引發了 java.util.ConcurrentModificationException

如果多個線程同時訪問一個 ArrayList 實例,而其中至少一個線程從結構上修改了列表,那么它必須 保持外部同步。

解決方法:初始化的時候 將ArrayList改為CopyOnWriteArrayList;

原理:

JAVA中將引用從一個對象移到另外一個對象不需要消耗CPU時間,可以看做是一個原子操作。

JAVA中如果一個對象仍舊存在引用,則不會被CG回收。

CopyOnWriteArrayList就是根據以上兩個特點,在列表有更新時直接將原有的列表復制一份,并再新的列表上進行更新操作,完成后再將引用 移到新的列表上。舊列表如果仍在使用中(比如遍歷)則繼續有效。如此一來就不會出現修改了正在使用的對象的情況(讀和寫分別發生在兩個對象上),同時讀操 作也不必等待寫操作的完成,免去了鎖的使用加快了讀取速度。

8.獲取隨機顏色

并不用每次都生成三個隨機數,下面兩條語句就可以了:

Random myRandom=new Random();

int ranColor = 0xff000000 | mRandom.nextInt(0x00ffffff);

10.去掉Activity的標題欄,全屏顯示

在manifest文件中修改對應的Avtivity屬性。

android:theme=@android:style/Theme.NoTitleBar.Fullscreen

11.如何修改應用名稱及應用圖標

修改程序的圖標,修改drawable文件夾的i→→c_launcher.png圖標,把新的圖標改名覆蓋就可以了。

如果你要自己的名稱,可以修改AndroidManifest.xml的這個節點,application android:icon=@drawable/ic_launcher,不需要加文件擴展名。

即使這么做了,真機調試的時候可能還是會有一些問題,比如圖標沒辦法改變,這個時候就需要在Eclipse中新建一個不同名的項目,然后轉移代碼(有點小麻煩~_~!)。

12.關于調試方法

調試的時候程序如果出錯,一般是查看logcat,看error發生的地方,會提示在程序的第幾行,然后去找就可以了。

但有些錯誤沒辦法定位,那就把日志輸出成txt,然后去google,baidu吧。

13.Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.

錯誤1:請求的字段在數據庫的表中不存在,一般是大小寫沒寫對;

錯誤2:編程的中途改變表的字段,實際字段并沒有改變,解決方法是卸載當前版本,再安裝調試。

14.android.content.res.Resources.loadXmlResourceParser

在傳遞string類做參數的地方傳了int形變量。

15.android.content.res.Resources$NotFoundException

出現此類異常時,可以根據 Resource ID到資源類R中找相關的資源。比如0x7f030000,對應的是city_item布局文件,就可以將問題縮小到更小的范圍。對于這類運行時找不到資 源,但資源又確實存在的問題,可能的編譯打包時出現問題,沒有將該資源加入。可修改一下該資源,讓編譯器重新編譯。

還有試一下Project ->Clean一下這個項目 也可以的。


上一頁 1 2 3 下一頁

關鍵詞:

評論


相關推薦

技術專區

關閉