首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android:“试图分配较弱的访问权限”在会议室数据库实现上的错误

Android:“试图分配较弱的访问权限”在会议室数据库实现上的错误
EN

Stack Overflow用户
提问于 2022-06-05 14:48:52
回答 6查看 3.5K关注 0票数 11

我正在尝试实现房间数据库,我已经在官方网站上完成了一些步骤,“AppDatabase.java”文件如下所示:

代码语言:javascript
运行
复制
import android.content.Context;
import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;

@Database(entities = {User.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {

    public static AppDatabase instance;
    public static synchronized AppDatabase getInstance(Context context){
        if (instance==null){
            instance = Room.databaseBuilder(context.getApplicationContext(),
                    AppDatabase.class, "app_database").fallbackToDestructiveMigration().build();
        }
        return instance;
    }
}

和我用在房间里的依赖关系:

代码语言:javascript
运行
复制
    // Room Database
    def room_version = "2.4.2"

    implementation "androidx.room:room-runtime:$room_version"
    annotationProcessor "androidx.room:room-compiler:$room_version"

    // optional - RxJava2 support for Room
    implementation "androidx.room:room-rxjava2:$room_version"

    // optional - RxJava3 support for Room
    implementation "androidx.room:room-rxjava3:$room_version"

    // optional - Guava support for Room, including Optional and ListenableFuture
    implementation "androidx.room:room-guava:$room_version"

    // optional - Test helpers
    testImplementation "androidx.room:room-testing:$room_version"

    // optional - Paging 3 Integration
    implementation "androidx.room:room-paging:2.5.0-alpha02"

    // Room Database

它在这里返回两个错误:

代码语言:javascript
运行
复制
onCreate(SupportSQLiteDatabase) in <anonymous com.example.testdb1.room.AppDatabase_Impl$1> cannot override onCreate(SupportSQLiteDatabase) in Delegate
attempting to assign weaker access privileges; was public
代码语言:javascript
运行
复制
onValidateSchema(SupportSQLiteDatabase) in <anonymous com.example.testdb1.room.AppDatabase_Impl$1> cannot override onValidateSchema(SupportSQLiteDatabase) in Delegate
attempting to assign weaker access privileges; was public

它在“花栗鼠”版本(在“大黄蜂”中使用)之前就已经开始工作了,但是它开始抛出这些错误。

这里发生什么事情?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2022-06-06 13:27:15

要修复Jetpack撰写和分页3中的此错误,只需使用以下库即可

代码语言:javascript
运行
复制
//ROOM
implementation "androidx.room:room-runtime:2.4.2"
kapt "androidx.room:room-compiler:2.4.2"
implementation "androidx.room:room-ktx:2.4.2"
implementation "androidx.room:room-paging:2.4.2"

// Paging 3.0
implementation 'androidx.paging:paging-compose:1.0.0-alpha15'
票数 8
EN

Stack Overflow用户

发布于 2022-06-07 12:32:00

通过НикандроваЕлизавета的回答,我发现问题的根源是我从官方网站添加的可选实现之一。

这些依赖项足以运行我的代码:

代码语言:javascript
运行
复制
    def room_version = "2.4.2"

    implementation "androidx.room:room-runtime:$room_version"
    annotationProcessor "androidx.room:room-compiler:$room_version"
票数 6
EN

Stack Overflow用户

发布于 2022-07-22 10:24:51

那么,我刚刚也遇到了这个问题,似乎您是在从官方指南中复制代码。这似乎是“androidx.Room:room-paging:2.5.0-alpha 02”的问题,因此解决方案是用最新的稳定版本(目前的2.4.2版本)替换它,或者只使用变量room_version,您可以在:https://androidx.tech/artifacts/room/room-paging/上检查最新版本,因此您只需要用下面的代码替换它就可以解决这个问题

代码语言:javascript
运行
复制
dependencies {
    def room_version = "2.4.2"

    implementation "androidx.room:room-runtime:$room_version"
    annotationProcessor "androidx.room:room-compiler:$room_version"

    // optional - RxJava2 support for Room
    implementation "androidx.room:room-rxjava2:$room_version"

    // optional - RxJava3 support for Room
    implementation "androidx.room:room-rxjava3:$room_version"

    // optional - Guava support for Room, including Optional and ListenableFuture
    implementation "androidx.room:room-guava:$room_version"

    // optional - Test helpers
    testImplementation "androidx.room:room-testing:$room_version"

    // optional - Paging 3 Integration
    implementation "androidx.room:room-paging:$room_version"
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72508332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档