自分でそれを見つける:)
のアプリのbuild.gradle
で、[OK]を:
...
configurations {
driver
}
dependencies {
...
driver 'org.xerial:sqlite-jdbc:3.20.1'
...
}
URLClassLoader loader = GroovyObject.class.classLoader
configurations.driver.each {File file -> loader.addURL(file.toURI().toURL())}
task createDB << {
ext.loadScript = { sql, file ->
println("Applying " + file)
String[] sqlcmds = file.text.split(";")
sqlcmds.collect{it.trim()}.findAll{!it.isEmpty() && !it.startsWith("--")}.each{
try {
sql.execute(it)
} catch(java.sql.SQLException e) {
System.err << "Invalid SQL statement: " + it
e.printStackTrace(System.err)
throw.e
}
}
}
def sql = groovy.sql.Sql.newInstance('jdbc:sqlite:path/to/asset/folder/dbfile','','','org.sqlite.JDBC')
new File("path/to/sql/init/files").eachFileMatch(~/.*\.sql/) {loadScript(sql, it)}
sql.close()
}
preBuild.dependsOn createDB
は、Android、特定の作成SQLスクリプトを追加することを忘れないでください:
CREATE TABLE IF NOT EXISTS "android_metadata" ("locale" TEXT DEFAULT 'en_US');
INSERT OR REPLACE INTO "android_metadata" (ROWID, "locale") VALUES ((SELECT ROWID FROM "android_metadata" WHERE "locale" = 'en_US'), 'en_US');
また、あなたは、レクレーションを処理する必要があります(たとえば、作成前にdbファイルを削除するか、CREATE TABLE IF NOT EXISTS
またはINSERT OR IGNORE INTO
intu initスクリプトのような安全なSQL文を入力してください)
アプリケーションの読み込み方法は、 Copy SQLite database from assets folder
出典
2017-11-20 10:41:32
czs
開発マシンに 'sqlite3'バイナリをインストールし、それを使ってSQL文を実行してデータベースを作成するためのGradleタスクを書くことができます。あるいは、SQLiteとのインターフェイスをとる普通のJavaライブラリを見つけ、それをカスタムGradleプラグインの一部として使用することもできます。 – CommonsWare