相关疑难解决方法(0)

Android Room数据库文件为空

在android中使用room for database.当我试图在sqlviewer中查看数据时,在数据库文件Myapp.db文件中找不到表是空的.数据/数据/包/数据库/ Myapp.db

sql android android-room

17
推荐指数
4
解决办法
9209
查看次数

如何根 Genymotion Android 模拟器?

我已经下载了 Genymotion Android 模拟器供个人使用。我在互联网上搜索了这个设备,论坛说通过 adb shell 它已经扎根 - “同意”。

Sumits-MacBook-Pro:sdk eSumit$ adb -s 192.168.57.102:5555 shell
root@vbox86p:/ # 
root@vbox86p:/ # whoami
root
Run Code Online (Sandbox Code Playgroud)

发现 Genymotion 配置 apk,它将有助于 root 访问,如果复选框被点击 - “始终允许 su 访问”,我也这样做了,然后它像这里一样卡住了。(见下文)

如果我自己重新启动,它显示没有root访问权限?

我可以知道我在这里缺少什么吗?

以下是图片序列:

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

我还学习了各种教程,例如Youtube - how to root genymotion emulator Android 7.0 但还没有解决方案

android genymotion

5
推荐指数
1
解决办法
2万
查看次数

如何在 sqlite DB 浏览器中查看 Room 数据库的表?

我在我的示例应用程序中使用 RoomDB。我能够对 DB 执行 CRUD 操作。但我无法查看 db 文件。我想在 sqlite DB 浏览器中查看表结构。

这是我的APPDatabase

 @Database(entities = {User.class}, version = 1,exportSchema = false)

public abstract class AppDatabase extends RoomDatabase {

    private static AppDatabase INSTANCE;  
    public abstract UserDao userDao();        
    public static AppDatabase getAppDatabase(Context context) {
        if (INSTANCE == null) {
            INSTANCE =
                    Room.databaseBuilder(context.getApplicationContext(), AppDatabase.class, "user-database")                                
                            .allowMainThreadQueries()
                            .build();
        }
        return INSTANCE;
    }    
    public static void destroyInstance() {
        INSTANCE = null;
    }
}
Run Code Online (Sandbox Code Playgroud)

帮我获取数据库文件。

android android-room

5
推荐指数
1
解决办法
6334
查看次数

如何更改 Room DataBase 的默认数据库文件位置?

我在我的应用程序中使用 RoomDB。能够执行 crud 操作。其实我想看看db文件。

getDatabasePath("user.db").getAbsolutePath();
Run Code Online (Sandbox Code Playgroud)

上面的代码给了我db文件所在的目录,保存目录是这样的

 /data/data/com.example.manvish.roomdb/databases/user.db
Run Code Online (Sandbox Code Playgroud)

但即使在命令提示符下使用 sudo ,我仍然无法访问数据目录。现在我想将 DB 文件位置更改为内部存储器或 SD 卡中的其他一些文件夹。我怎样才能做到这一点?

android android-sqlite android-room

5
推荐指数
1
解决办法
8146
查看次数

Room-插入新值后执行删除

我正在研究Rxjava2,并且正在尝试将Room Library与Rxjava2集成。问题是:我有一个填充的表,每次登录该应用程序时,都需要删除该表,然后在数据库中插入新内容。另外,在删除和插入工作正常,但是当我尝试我删除该表的内容后插入新值,删除方法删除所有的新的价值观。(代码的某些部分是在科特林和其他JAVA)
我已经尝试了以下方法:RxJava2 + Room:在clearAllTables()调用之后没有将数据插入DB中,但是没有成功。

@Dao
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insert(list:List<Something>)

@Query("DELETE FROM SomethingTable")
fun delete()

@Query("SELECT * FROM SomethingTable")
fun getAll(): Flowable<List<Something>>
Run Code Online (Sandbox Code Playgroud)

我的班级叫DAO(CallDao)

//insert
fun insertInDB(list: List<Something>) {
    Completable.fromAction {
        dbDAO!!.insert(list)
    }.observeOn(AndroidSchedulers.mainThread())
            .subscribeOn(Schedulers.io())
            .subscribe()
}

//delete
fun clean() {
    Completable.fromAction {
        dbDAO!!.delete()
    }.observeOn(AndroidSchedulers.mainThread())
            .subscribeOn(Schedulers.single())
            .subscribe()
}

//search all
fun findAll(): Observable<List<Something>>? {
    return Observable.create { subscriber ->
        dbDAO!!.getAll()
                .subscribeOn(Schedulers.io())
                .subscribe {it->
                    subscriber.onNext(it)
                }
    }
}
Run Code Online (Sandbox Code Playgroud)

单击登录按钮时调用的方法

private void clearAndInsertInDB() {
CallDao callDao= new CallDao(getActivity());
//delete all …
Run Code Online (Sandbox Code Playgroud)

android kotlin rx-java2 android-room

5
推荐指数
1
解决办法
2216
查看次数