代码之家  ›  专栏  ›  技术社区  ›  Sephy

SQLITE3权限被拒绝Android

  •  12
  • Sephy  · 技术社区  · 14 年前

    我正试图访问我在nexus上直接开发的应用程序的数据库,但是当我试图执行“sqlite3”命令时,我得到了一个“拒绝权限”。 我还试图启动根mod中的adb,但再次,设备上的权限被拒绝… 我想我必须用模拟器来完成这项工作,但是我有很多数据要加载,而且在wifi上使用手机要比模拟器快10倍… 除非有人知道? 谢谢

    4 回复  |  直到 10 年前
        1
  •  3
  •   Brad Hein    12 年前

    典型的。

    我通过在我的应用程序中添加一个将数据库备份(复制)到SD卡的功能来解决这个问题。 adb pull 针对任何SD卡文件工作。

    编辑:修正了“adb”的拼写错误(原为“sdp”。

        2
  •  8
  •   eggbert    12 年前

    我为此挣扎了一段时间,所以这里是我的解决方案,它在一个未分类的设备上工作:

    #!/bin/sh
    
    # fill these values in
    PACKAGE=com.example.android
    DB=something.db 
    
    # copy db to sdcard using package permission (using cat because no cp    command)
    adb shell "run-as $PACKAGE cat /data/data/$PACKAGE/databases/$DB >   /sdcard/$DB"
    
    # pull file from sd card
    adb pull /sdcard/$DB
    
    # do something with it (need to install sqlitebrowser obviously)
    sqlitebrowser $DB
    
        3
  •  4
  •   Alexander Stolz    14 年前

    这些文件是受读保护的,您需要将手机根目录或使用模拟器。

        4
  •  0
  •   Piotr Buda    12 年前

    我也有类似的问题。我从Emulator中提取了sqlite3,在我的设备上推了进来,但无法运行它-权限被拒绝。

    显然,sqlite3二进制文件没有执行权限(-rw rw rw-),所以chmod+x sqlite3解决了这个问题。