Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Android Android Data Persistence Using SQLite for Structured Data Using sqlite3 to View Databases

Using sqlite3 in adb shell error: "could not load needed library 'libncurses.so' for 'sqlite3' ... cannot link executab"

It seems simple enough to use sqlite3 with adb shell, according to the video and Android sqlite3 documentation entry. But, when I try to run the sqlite3 command in adb shell, I get the error link_image[1891]: 12565 could not load needed library 'libncurses.so' for 'sqlite3' (load_library[1093]: Library 'libncurses.so' not found)CANNOT LINK EXECUTABLE.

Any tips for resolving this?

Update: The above error was from using a rooted HTC Evo API 16 physical device. Testing on a rooted Nexus 4 API 21, the error was along the lines of sqlite3 not found. Then, finally, testing on an emulator worked. I've put this note as an "answer" for people who just want to continue with the course, but I'm still interested in a real answer to the question.

Update2: I've found that the Evo does have the sqlite file stored in /system/xbin/. The Nexus 4 with Lollipop system image didn't have the sqlite file in /system/bin/ or /system/xbin/.

1 Answer

After a little bit of trial and error, I found the quickest workaround is to use an emulator instead of a physical device. (Sidenote: I used Genymotion Samsung Galaxy S3 API 18)

Doing adb shell with the emulator allowed me to run the commands shown in the video.