错误:无法打开数据库- SQLite - React-Native - Android

z4iuyo4d  于 2023-04-06  发布在  SQLite
关注(0)|答案(4)|浏览(185)

我正在努力使用库react-native-sqlite-storage
我使用的是Android模拟器,所以我把我的users.db文件放在'android/app/src/main/assets/users.db'中,这是文件users.db的图像
我也已经运行了npx react-native link命令来创建链接,我使用的是react-native版本6.0以上的自动链接
我得到了这个错误:error not connect database
这是我的代码,有没有人可以帮助我?谢谢你的时间!

import React, {Component} from 'react'
import {View, Text, Alert} from 'react-native'
import SQLite from 'react-native-sqlite-storage'

export default class App extends Component {

  constructor(props) {
    super(props)
    SQLite.openDatabase({name:'users', createFromLocation:1}, this.connected, this.failed)
  }

  connected= () =>{
    Alert.alert('Connected with success !')
  }

  failed= (e) =>{
    Alert.alert('Something went wrong !', `${e}`)
  }

  render(){
    return(
      <View>
        <Text>Testing SQLite</Text>
      </View>
    )
  }
}
vjhs03f7

vjhs03f71#

所以我做了什么,使它的工作是改变属性createFromLocation为2号,当你这样做,系统创建它自己的数据库,其中是空的,所以你只需要创建表,并使用它的方式,你想要的!不幸的是,我没有设法使用我的旧数据库,但使用这个新的解决了我的问题!

9rbhqvlz

9rbhqvlz2#

您需要将数据库放入assets/www文件夹才能使其工作。

gg58donl

gg58donl3#

在我从设备上完全卸载应用程序并使用npx react-native run-android从头开始重新安装之后,预填充的数据库是只读的。
仅仅在应用程序已经在设备上时重新加载它是不够的。

mjqavswn

mjqavswn4#

我从react-native.config.js中删除了它,它工作了

"react-native-sqlite-storage": {
  platforms: {
    android: {
      sourceDir:
        "../node_modules/react-native-sqlite-storage/platforms/android-native",
      packageImportPath: "import io.liteglue.SQLitePluginPackage;",
      packageInstance: "new SQLitePluginPackage()"
    }
  }
}

参考:Github

相关问题