2013-07-02 7 views
6

私は、WhatsAppのSQLiteデータベースを読み込むルートアプリケーションを持っています。私はsqliteバイナリを使用してSQLクエリを実行しています。私はその結果をアプリケーションに読み込みます。AndroidデバイスにSQLite実行ファイルをインストールするにはどうしたらいいですか?

これで問題なく動作しますが、SQLite実行ファイルが一部のデバイス、特にGalaxy S3 GT-I9300にないようです。 (これは私のクラッシュ統計からもわかります)

私のアプリケーションでは、sqlite3実行ファイルもユーザーの電話機にインストールされています。 SQLite実行ファイルは/system/xbin/sqlite3または/system/bin/sqlite3にする必要があります。 assetsのアプリケーションにsqlite3バイナリをバンドルしています。私のアプリケーションは、アセットを解凍して正しい場所にコピーします。 Androidエミュレータからsqlite3バイナリを抽出しました。

今、ライブラリファイルlibncurses.soが見つかりませんでした。私の電話では、ファイルは/system/bin/libncurses.soです。

libncurses.soファイルを自分のアプリケーションにバンドルする必要がありますか?バンドルする必要があるものは他にありますか?

デバイスにsqlite3を追加するより良い方法がある場合は、それを聞いてうれしく思います。

+0

あなたは何バイナリを使うのですか?私はそれが["Linux用のプリコンパイルされたバイナリ"](http://www.sqlite.org/download.html)だと思いますか? – RandomSeed

+0

私が使用しているバイナリは、Android Jelly Bean Emulatorのものです。私は 'adb'を使って画像から取り除きました。 –

答えて

1

あなたが根いる、あなたは、このアプリケーション

https://play.google.com/store/apps/details?id=ptSoft.util.sqlite3forroot&feature=search_result#?t=W251bGwsMSwyLDEsInB0U29mdC51dGlsLnNxbGl0ZTNmb3Jyb290Il0を使用することができます。

+1

StackOverflowは、説得力のある説明と解答を目的としたもので、Playストアリンクではありません。私はあなたのご意見をお待ちしていますが、このサイトのコンテンツを便利なものにしたいと思います。ありがとう。 –

+4

@Mridang - marshallinoの投稿は実際にスレッドで最も便利です。 –

+3

そのアプリケーションは、残念ながら小さな注意点があります。これは、電話のライブラリに依存関係の問題を意味しないsqliteライブラリの静的なコピーで構築されています。残念ながら、バイナリを構築するために使用される静的ライブラリはsqlite.orgの未修正バージョンであり、Android用のGoogle拡張機能はいくつか省略されています。たとえば、PHONEBOOKタイプの照合は省略されます。このアプリからの静的なバイナリはほとんどのもので動作しますが、そうでない状況があります。エミュレータの画像からバイナリのコピーが私のために最も効果的でした。 – etherfish

0

依存関係を逃れたい場合は、必要なすべてのライブラリを静的にリンクして自分で構築してください。いくつかはSOの回答の過多になります上の検索

+2

私はこれをどうやってやることができるのか詳しく説明できますか?私はmakeとgccについて多くの知識を持っていませんが、ちょっとした助けを借りて、私はそれを行うことができます。ありがとう。 –

+0

@MridangAgarwalla私はここで多くを助けることはできません、完全なアンドロイドを構築し、何とかそれを変更するための環境をセットアップすることを提案することができますか、またはシアンのコミュニティに移動し、そこに援助を求める。 – Vasaka

関連する問題