资产(数据库)不会复制到应用程序数据库目录

时间:2015-03-25 18:10:18

标签: android assets

一旦我启动了我的应用程序,我得到一个例外,说应用程序无法在数据库中找到正确的表。通过Android设备监视器检查后,我的应用程序的databases目录中没有正确的数据库。但是,它位于app/assets目录中。发生了什么事?

2 个答案:

答案 0 :(得分:0)

  

但是,它存在于app / assets目录中。

默认情况下,这是Android Studio项目中资产的错误位置。资产位于源集中的assets/目录中(例如,app/src/main/)。如果您希望assets/离开模块根目录,可以,但是您需要配置build.gradle告诉它在哪里找到资产,可能是通过以下方式:

sourceSets {
    main {
        assets.srcDirs = ['assets']
    }
}

答案 1 :(得分:-1)

您需要将此行为与支持库的升级相关联。当您更改在编辑build.gradle文件的应用程序中使用的版本并使用支持库(appcompat-vxsupport-vx)时,您必须将资产复制到app/build/intermediates/exploded-aar/com.android.support/[library]/[version from build.gradle]/assets才能生成它们对您的应用可见。

另外,请记住在使用新设置启动应用程序之前擦除模拟器设备。

此问题也在此处报告:Where to put an asset file to be accessible for an application?,但有关库升级的信息缺失。