小编han*_* ke的帖子

Dagger 2:没有@Annex-annotated方法不能提供

我刚刚开始学习dagger2,面对一个看起来像个bug的奇怪问题.这是模块:

@Module
public class SimpleModule {

    @Provides
    Cooker providerCooker() {

        return new Cooker("tom", "natie");
    }
}
Run Code Online (Sandbox Code Playgroud)

零件:

@Component(modules = SimpleModule.class)
public interface SimpleComponent {

    void inject(DaggerTestActivity activity);

}
Run Code Online (Sandbox Code Playgroud)

接口:

public interface CoffeeMaker {

    String makeCoffee();
}
Run Code Online (Sandbox Code Playgroud)

执行:

  public class SimpleMaker implements CoffeeMaker {

        Cooker mCooker;

        @Inject
        public SimpleMaker(Cooker cooker) {

            this.mCooker = cooker;

        }

        @Override
        public String makeCoffee() {

            return mCooker.makeCoffee();
        }
    }
Run Code Online (Sandbox Code Playgroud)

电饭煲:

public class Cooker {

    String name; 
    String coffeeKind;


    public Cooker(String name, String coffeeKind) {
        this.name = …
Run Code Online (Sandbox Code Playgroud)

java android dependency-injection dagger dagger-2

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

房间android数据库被锁定

我从生产\xe3\x80\x82\n错误分析期间发生异常。我的项目数据库有空间。项目中没有使用多进程。数据库机房已经封装了事务操作。我不知道为什么数据库被锁定。希望得到您的帮助\xef\xbc\x8c谢谢!

\n
this is exception\n\nProcess Name: 'com.geek.jk.weather'\nThread Name: 'kotlinx.coroutines.scheduling.CoroutineScheduler$Worker#DefaultDispatcher-worker-2'\nBack traces starts.\nandroid.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5)\n    at android.database.sqlite.SQLiteConnection.nativeExecute(Native Method)\n    at android.database.sqlite.SQLiteConnection.execute(SQLiteConnection.java:553)\n    at android.database.sqlite.SQLiteSession.beginTransactionUnchecked(SQLiteSession.java:323)\n    at android.database.sqlite.SQLiteSession.beginTransaction(SQLiteSession.java:298)\n    at android.database.sqlite.SQLiteDatabase.beginTransaction(SQLiteDatabase.java:505)\n    at android.database.sqlite.SQLiteDatabase.beginTransaction(SQLiteDatabase.java:416)\n    at androidx.sqlite.db.framework.FrameworkSQLiteDatabase.beginTransaction(FrameworkSQLiteDatabase.java:1)\n    at androidx.room.RoomDatabase.beginTransaction(RoomDatabase.java:4)\n    at com.xiaoniu.unitionadbase.collie.dao.EventTrackDao_Impl$3.call(EventTrackDao_Impl.java:2)\n    at com.xiaoniu.unitionadbase.collie.dao.EventTrackDao_Impl$3.call(EventTrackDao_Impl.java:1)\n    at androidx.room.CoroutinesRoom$Companion$execute$2.invokeSuspend(CoroutinesRoom.kt:2)\n    at Rza.resumeWith(ContinuationImpl.kt:3)\n    at WIa.run(DispatchedTask.kt:18)\n    at androidx.room.TransactionExecutor$1.run(TransactionExecutor.java:1)\n    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)\n    at java.lang.Thread.run(Thread.java:818)\n    Back traces ends.\n
Run Code Online (Sandbox Code Playgroud)\n

数据库

\n
@Database(entities = [CommonTrack::class, EventTrack::class], version = 1)\nabstract class TrackDatabase : RoomDatabase() {\nabstract fun CommonTrackDao(): CommonTrackDao\nabstract fun EventTrackDao(): EventTrackDao\n\ncompanion object {\n\n    private var instance: …
Run Code Online (Sandbox Code Playgroud)

database android android-room

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