Android 調試真機 SQLite 資料庫

來源:互聯網
上載者:User

標籤:

  最近做東西,先是在模擬器上進行資料庫的測試,讀寫操作,發現沒問題了之後開始進行真機的測試。但是,為了在測試的時候能查看資料庫的變化,確保程式的值都正確的寫入了資料庫。就通過adb shell串連手機進行查看。但是發現和模擬器不同,有各種各樣的問題,不過總結下來一句話就是---許可權不夠。

  現將問題總結如下,並給出我的一些解決辦法,都是一些笨方法。比較粗暴。

  問題一: sh: sqlite3 command not found.

  adb shell進入程式目錄後通過 sqlite3 "databases name",後提示這個,是因為/system/xbin/下沒有sqlite3 檔案的命令執行檔案。解決的方法就是拷貝一個進去。網上關於這方面的東西也很多。但是也有很多人說不好使。原因在於sqlite3也是有很多版本的,個人推薦的方法是先弄清楚自己的真機的Android版本。在AVD中建立一個版本一樣的模擬器,然後將模擬器中/system/xbin/sqlite3 拉出來,放進真機中。

  問題二: permission denied

  接著上面的步驟我們發現,檔案放進去了,但是檔案的屬性是讀寫,沒有執行許可權。所以解決辦法就是給它執行的的許可權。簡單粗暴一點的方法就是 chmod 777.簡單又粗暴。其實在上面或者這裡我們都會發現一個問題,當我們以adb shell 去操作真機時,會發現,由於手機的系統都是read only,所以上面和我們接下來的大部分操作都會被拒絕或者提醒許可權不夠,這時我們需要暫時的把檔案系統改為可寫的(我對linux並不是很熟悉,這是在網上搜集的解決方案)。

  mount -o remount,rw -t yaffs2  /system/xbin

  問題三: CANNOT LINK EXECUTABLE

  修改完sqlite3檔案的可執行許可權後,還是執行失敗,是因為少了libncurses.so庫檔案,上網上down下來然後拉進/system/lib下。

  問題四: Error: unable to open database "****": unable to open database file

  做完上面的東西,已經折騰了半天,實在是很無語。本以為快要解決的時候。突然又出現了這個問題。這個問題讓我有點摸不著頭腦,因為百度了一下發現,這依然是許可權問題。但是我不懂的是作為一個資料庫檔案,有了讀寫的許可權為什麼還是不能被sqlite3載入。在我嘗試給資料庫賦上執行許可權時,就能夠開啟了個人感覺一個檔案不需要執行,只需要被另一個程式開啟時是不需要執行許可權的。還望大家看到後告知我一聲。雖然解決了但是依然莫名其妙。

  在解決了上述的問題後就能夠通過adb shell 調試真機的資料庫了。網上也有一些這方面的文章,此篇文章只是作為補充說明和個人碰到問題集合。

Android 調試真機 SQLite 資料庫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.