我刚刚开始学习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) 我从生产\xe3\x80\x82\n错误分析期间发生异常。我的项目数据库有空间。项目中没有使用多进程。数据库机房已经封装了事务操作。我不知道为什么数据库被锁定。希望得到您的帮助\xef\xbc\x8c谢谢!
\nthis 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.\nRun 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)