Lỗi khi insert google map vào app android năm 2024

Thư viện lưu trữ Room cung cấp một lớp trừu tượng qua SQLite để mang lại khả năng truy cập cơ sở dữ liệu mạnh mẽ hơn, đồng thời khai thác toàn bộ sức mạnh của SQLite.

Bản cập nhật mới nhất Bản phát hành ổn định Bản phát hành dùng thử Bản phát hành beta Bản phát hành alpha Ngày 11 tháng 1 năm 2023 - - -

Khai báo phần phụ thuộc

Để thêm một phần phụ thuộc trên Room, bạn phải thêm kho lưu trữ Google Maven vào dự án. Đọc nội dung để biết thêm thông tin.

Các phần phụ thuộc cho Room bao gồm và

Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

1 cho ứng dụng hoặc mô-đun:

Groovy

dependencies {def room_version = "2.5.0" implementation "androidx.room:room-runtime:$room_version" annotationProcessor "androidx.room:room-compiler:$room_version" // To use Kotlin annotation processing tool (kapt) kapt "androidx.room:room-compiler:$room_version" // To use Kotlin Symbol Processing (KSP) ksp "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" }

Kotlin

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

Để biết thông tin về cách sử dụng các phần mở rộng Kotlin, hãy xem tài liệu ktx.

Để biết thêm thông tin về các phần phụ thuộc, hãy xem bài viết Thêm phần phụ thuộc của bản dựng.

Đối với các thư viện không thuộc Android (tức là các mô-đun Gradle chỉ dùng Java hoặc Kotlin), bạn có thể tuỳ ý phụ thuộc vào

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

2 để sử dụng chú thích Room.

Định cấu hình các tuỳ chọn trình biên dịch

Room có các tuỳ chọn bộ xử lý chú giải sau:

  • dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 3: Định cấu hình và bật tính năng xuất giản đồ cơ sở dữ liệu vào tệp JSON trong thư mục cụ thể. Xem phần để biết thêm thông tin.
  • dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 4: Bật trình xử lý chú giải gia tăng cho Gradle.

Ví dụ về cách định cấu hình các tuỳ chọn này được thể hiện trong đoạn mã sau đây:

Groovy

android {... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } }

Kotlin

android {... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } }

Ý kiến phản hồi

Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.

Báo lỗi mới

Xem tài liệu về Công cụ theo dõi lỗi để biết thêm thông tin.

Phiên bản 2.5.0

Phiên bản 2.5.0

Ngày 11 tháng 1 năm 2023

Phát hành

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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. Phiên bản 2.5.0 bao gồm các thay đổi sau.

Thay đổi quan trọng kể từ phiên bản 2.4.0

  • Toàn bộ nguồn dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 6 đã được chuyển đổi từ Java sang Kotlin. Xin lưu ý rằng bạn có thể gặp phải các vấn đề về khả năng không tương thích nguồn nếu mã nằm trong Kotlin do quá trình chuyển đổi thư viện sang Kotlin. Ví dụ: sự thay đổi không tương thích với nguồn đã biết là trong dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 7, giờ đây, bạn sẽ cần khai báo dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 8 trong dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 9 để có tham số loại android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 0 chứ không phải android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 1. Hơn nữa, một số phương thức getter nhất định được chuyển đổi thành các thuộc tính yêu cầu cú pháp truy cập vào thuộc tính trên các tệp Kotlin. Vui lòng báo cáo lỗi nếu có bất kỳ sự cố không tương thích đáng kể nào.
  • Thêm một chú giải mới cho lối tắt ( android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } }
  • để cố gắng chèn một thực thể khi không có xung đột về tính riêng biệt hoặc cập nhật thực thể nếu có xung đột. (, b/241964353)
  • Thêm các cấu phần phần mềm room-paging android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 3, android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 4 và android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 5 để hỗ trợ trong Room Paging.
  • Thêm các API nhằm cung cấp tên bảng giá trị và khoá để phân định trong android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 6 ()

Phiên bản 2.5.0-rc01

Ngày 7 tháng 12 năm 2022

Phát hành

android {... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } }

7. Phiên bản 2.5.0-rc01 bao gồm các thay đổi sau.

  • Bản phát hành này tương tự như phiên bản android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 8.

Phiên bản 2.5.0-beta02

Ngày 9 tháng 11 năm 2022

Phát hành

android {... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } }

9. Phiên bản 2.5.0-beta02 bao gồm các thay đổi sau.

Các thay đổi về API

  • Khắc phục nhiều API lấy đối số truy vấn từ mảng bất biến ( android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } }
  • thành mảng phản biến ( android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } }
  • để khớp với hành vi mảng của Java. (b/253531073)

Phiên bản 2.5.0-beta01

Ngày 5 tháng 10 năm 2022

Phát hành

android {... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } }

2. Phiên bản 2.5.0-beta01 bao gồm các thay đổi sau.

Các thay đổi về API

  • API 16 là phiên bản tối thiểu duy nhất hỗ trợ android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 2. Nguyên nhân là do không thể xác định xung đột ràng buộc khoá chính trong các API cũ. (, b/243039555)

Sửa lỗi

  • Khắc phục vấn đề các bảng bóng đổ bị xuất không chính xác sang tệp android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 4 trong giản đồ, dẫn đến làm hỏng các bảng này. (, b/246751839)

Phiên bản 2.5.0-alpha03

Ngày 24 tháng 8 năm 2022

Phát hành

android {... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } }

5. Phiên bản 2.5.0-alpha03 bao gồm các thay đổi sau.

Tính năng mới

  • Thêm một chú giải mới cho lối tắt ( android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } }
  • để cố gắng chèn một thực thể khi không có xung đột về tính riêng biệt hoặc cập nhật thực thể nếu có xung đột. (, b/241964353)

Sửa lỗi

  • Giờ đây, Room sẽ gửi android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 7 thay vì android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 8 trong quá trình kiểm tra lỗi ràng buộc về khoá ngoại tự động di chuyển (auto-migration foreign key). ()
  • Khắc phục một lỗi thay đổi không tương thích với nguồn Kotlin cho phương thức getter/các thuộc tính của

    android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 9,

    @MapInfo(valueColumn = "songCount") @Query(""" SELECT *, COUNT(mSongId) as songCount FROM Artist JOIN Song ON Artist.artistName = Song.artist GROUP BY artistName """) fun getArtistAndSongCounts(): Map<Artist, Integer>

    0 và

    @MapInfo(valueColumn = "songCount") @Query(""" SELECT *, COUNT(mSongId) as songCount FROM Artist JOIN Song ON Artist.artistName = Song.artist GROUP BY artistName """) fun getArtistAndSongCounts(): Map<Artist, Integer>

    1. ()

Phiên bản 2.5.0-alpha02

Ngày 1 tháng 6 năm 2022

Phát hành @MapInfo(valueColumn = "songCount") @Query(""" SELECT *, COUNT(mSongId) as songCount FROM Artist JOIN Song ON Artist.artistName = Song.artist GROUP BY artistName """) fun getArtistAndSongCounts(): Map<Artist, Integer>

2. Phiên bản 2.5.0-alpha02 bao gồm các thay đổi sau.

Tính năng mới

  • Thêm các cấu phần phần mềm

    @MapInfo(valueColumn = "songCount") @Query(""" SELECT *, COUNT(mSongId) as songCount FROM Artist JOIN Song ON Artist.artistName = Song.artist GROUP BY artistName """) fun getArtistAndSongCounts(): Map<Artist, Integer>

    3 mới, android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 3, android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 4 và android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 5 để hỗ trợ trong Room Paging. (41a1d4,b/203666906),(eb6098,b/203666906),(1b9ae4,b/203666906)

Thay đổi về API

  • Toàn bộ dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 6 đã được chuyển đổi từ Java sang Kotlin. (, b/206859668),(, b/206859668), (, b/206859668), (, b/206859668) Lưu ý: Bạn có thể gặp phải các vấn đề về khả năng không tương thích nguồn do quá trình chuyển đổi thư viện sang Kotlin. Nếu mã của bạn nằm trong Kotlin và gọi phiên bản cũ của Room, thì phiên bản mới sẽ cần xử lý những trường hợp này. Ví dụ: một thay đổi không tương thích với nguồn đã biết là trong dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 7, giờ đây bạn sẽ cần khai báo dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 8 trong dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 9 để có tham số loại android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 0 chứ không phải android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 1.
  • Thêm các API nhằm cung cấp tên bảng giá trị và khoá để phân định trong android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 6 ()
  • Khắc phục vấn đề về khả năng tương thích với nguồn để tái cho phép

    @Query("SELECT * FROM Song JOIN Artist ON Song.artistId = Artist.artistId") fun getSongAndArtist(): Map<Song, Artist>

    4 trong phương thức getter cho thuộc tính. ()

Sửa lỗi

  • Thuật toán phỏng đoán về độ phân giải của cột trùng lặp. Room sẽ nỗ lực để phân giải các cột không rõ ràng trong một truy vấn có cấu trúc đa ánh xạ. Điều này cho phép JOIN có các bảng chứa bảng cùng tên được ánh xạ chính xác tới một đối tượng dữ liệu kết quả. (, b/201306012, b/212279118)

Phiên bản 2.5.0-alpha01

Ngày 23 tháng 2 năm 2022

Phát hành @Query("SELECT * FROM Song JOIN Artist ON Song.artistId = Artist.artistId") fun getSongAndArtist(): Map<Song, Artist>

5. Phiên bản 2.5.0-alpha01 bao gồm các thay đổi sau.

Thay đổi về API

  • Khắc phục vấn đề không thực thi được việc sử dụng Room

    @Query("SELECT * FROM Song JOIN Artist ON Song.artistId = Artist.artistId") fun getSongAndArtist(): Map<Song, Artist>

    6 trong các nguồn Kotlin. (, b/217951311)
  • Khắc phục vấn đề về khả năng tương thích với nguồn để tái cho phép

    @Query("SELECT * FROM Song JOIN Artist ON Song.artistId = Artist.artistId") fun getSongAndArtist(): Map<Song, Artist>

    7 trong phương thức getter cho thuộc tính. ()
  • Chuyển đổi room-common từ Java sang Kotlin. (, b/206858235) Lưu ý: Bạn có thể gặp phải vấn đề về khả năng không tương thích với nguồn vì một số thuộc tính đã được chuyển sang các đối tượng đồng hành (companion) trong quá trình chuyển đổi thư viện sang Kotlin. Nếu mã của bạn được viết bằng Kotlin và gọi phiên bản cũ của Room, thì phiên bản mới sẽ cần hậu tố ".Companion" khi truy cập vào các thuộc tính này.
  • Chuyển đổi room-migration từ Java sang Kotlin. (, b/206858622)
  • Chuyển đổi các tệp liên quan đến

    @Query("SELECT * FROM Song JOIN Artist ON Song.artistId = Artist.artistId") fun getSongAndArtist(): Map<Song, Artist>

    8 trong dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 6 từ Java sang Kotlin. (, b/206859668)
  • Thêm API để khoá và sử dụng đa tiến trình ở cấp FrameworkSQLite* nhằm đảm bảo việc khởi tạo và di chuyển cơ sở dữ liệu lần đầu tiên theo nhiều tiến trình. (, b/193182592)

Sửa lỗi

  • Thêm tính năng hỗ trợ cho các thuộc tính nội bộ trong nguồn Kotlin. Đây là sự thay đổi nhỏ về hành vi trong Room, trong đó ứng dụng sẽ dùng tên nguồn của các hàm trong khi so khớp chúng với các thuộc tính dưới dạng phương thức getter/setter (trước đây, ứng dụng sử dụng tên JVM của hàm khác với hàm/thuộc tính nội bộ). Nếu bạn đang sử dụng chú thích

    @Query("SELECT * FROM Artist JOIN Album ON Artist.id = Album.artistId") fun getArtistAndAlbums(): Map<Artist, List<Album>>

    0 tuỳ chỉnh để so khớp phương thức getter/setter với thuộc tính riêng tư, vui lòng kiểm tra kỹ mã đã tạo sau lần cập nhật (, b/205289020)

Phiên bản 2.4.3

Phiên bản 2.4.3

Ngày 27 tháng 7 năm 2022

Phát hành @Query("SELECT * FROM Artist JOIN Album ON Artist.id = Album.artistId") fun getArtistAndAlbums(): Map<Artist, List<Album>>

1. Phiên bản 2.4.3 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục sự cố khiến Room không nhận dạng được các hàm tạm ngưng trong Kotlin 1.7 (b/236612358)

Phiên bản 2.4.2

Phiên bản 2.4.2

Ngày 23 tháng 2 năm 2022

Phát hành @Query("SELECT * FROM Artist JOIN Album ON Artist.id = Album.artistId") fun getArtistAndAlbums(): Map<Artist, List<Album>>

2. Phiên bản 2.4.2 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục vấn đề khi tạo mã cho hàm tạm ngưng Dao

    @Query("SELECT * FROM Artist JOIN Album ON Artist.id = Album.artistId") fun getArtistAndAlbums(): Map<Artist, List<Album>>

    3 với một nội dung tạo một phương thức giao diện mặc định do quá trình biên dịch có

    @Query("SELECT * FROM Artist JOIN Album ON Artist.id = Album.artistId") fun getArtistAndAlbums(): Map<Artist, List<Album>>

    4 hoặc tương đương. ()
  • Xử lý lỗi khi Room tạo mã cho phương thức truy vấn kiểu dữ liệu trả về

    @Query("SELECT * FROM Artist JOIN Album ON Artist.id = Album.artistId") fun getArtistAndAlbums(): Map<Artist, List<Album>>

    5. (, b/213789489)

Phiên bản 2.4.1

Phiên bản 2.4.1

Ngày 12 tháng 1 năm 2022

Phát hành @Query("SELECT * FROM Artist JOIN Album ON Artist.id = Album.artistId") fun getArtistAndAlbums(): Map<Artist, List<Album>>

6. Phiên bản 2.4.1 bao gồm các thay đổi sau.

Sửa lỗi

  • Thêm tính năng hỗ trợ cho các thuộc tính nội bộ trong nguồn Kotlin. Đây là sự thay đổi nhỏ về hành vi trong Room, trong đó ứng dụng sẽ dùng tên nguồn của các hàm trong khi so khớp chúng với các thuộc tính dưới dạng phương thức getter/setter (trước đây, ứng dụng sử dụng tên JVM của hàm khác với hàm/thuộc tính nội bộ). Nếu bạn đang sử dụng chú thích

    @Query("SELECT * FROM Artist JOIN Album ON Artist.id = Album.artistId") fun getArtistAndAlbums(): Map<Artist, List<Album>>

    0 tuỳ chỉnh để so khớp phương thức getter/setter với thuộc tính riêng tư, vui lòng kiểm tra kỹ mã đã tạo sau lần cập nhật (, b/205289020)

Phiên bản 2.4.0

Phiên bản 2.4.0

Ngày 15 tháng 12 năm 2021

Phát hành @Query("SELECT * FROM Artist JOIN Album ON Artist.id = Album.artistId") fun getArtistAndAlbums(): Map<Artist, List<Album>>

8. Phiên bản 2.4.0 bao gồm các thay đổi sau.

Thay đổi quan trọng kể từ phiên bản 2.3.0

  • Tự động di chuyển (auto-migration): Room hiện cung cấp một API để tự động tạo các lượt di chuyển, miễn là bạn đã xuất giản đồ. Để thông báo rằng Room cần tạo một hành động tự động di chuyển, bạn có thể dùng một thuộc tính mới

    @Query("SELECT * FROM Artist JOIN Album ON Artist.id = Album.artistId") fun getArtistAndAlbums(): Map<Artist, List<Album>>

    9 để khai báo các phiên bản được tự động di chuyển qua lại. Khi Room cần thêm thông tin về việc thay đổi tên hoặc xoá bảng và cột, thì chú thích

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    0 có thể khai báo một lớp tham số chứa các thông tin đầu vào đó. Xem tài liệu

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    0 để biết thêm thông tin chi tiết.
  • Chèn phần phụ thuộc trong Tự động di chuyển:

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    2 là một API mới để khai báo rằng

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    3 sẽ được cung cấp trong thời gian chạy thông qua

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    4. Điều này cho phép một khung chèn phần phụ thuộc nhằm cung cấp các quy cách đó khi chúng cần các phần phụ thuộc phức tạp.
  • Trình trợ giúp kiểm tra di chuyển hỗ trợ tính năng tự động di chuyển:

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    5 của Room đã được cập nhật để hỗ trợ tính năng tự động di chuyển bằng cách cung cấp một API hàm khởi tạo mới nhận lớp cơ sở dữ liệu đang được kiểm thử. Điều này cho phép trình trợ giúp tự động thêm tính năng tự động di chuyển theo cách tương tự như trong

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    6.
  • Hỗ trợ Room-Paging:

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    7 được phát hành, hỗ trợ Paging 3.0 gốc cho các truy vấn Room trả về

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    8.
  • Các phương pháp truy vấn quan hệ: Room nay hỗ trợ các phương thức

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    9 trả về đa bản đồ (multimap), hữu ích cho câu lệnh JOIN. Các loại đa bản đồ được hỗ trợ là

    dependency { implementation("androidx.room:room-paging:2.4.0-alpha04") }

    0,

    dependency { implementation("androidx.room:room-paging:2.4.0-alpha04") }

    1,

    dependency { implementation("androidx.room:room-paging:2.4.0-alpha04") }

    2, cùng với

    dependency { implementation("androidx.room:room-paging:2.4.0-alpha04") }

    3,

    dependency { implementation("androidx.room:room-paging:2.4.0-alpha04") }

    4 và

    dependency { implementation("androidx.room:room-paging:2.4.0-alpha04") }

    5 của Guava.

Phiên bản 2.4.0-rc01

Ngày 1 tháng 12 năm 2021

Phát hành dependency { implementation("androidx.room:room-paging:2.4.0-alpha04") }

6. Phiên bản 2.4.0-rc01 bao gồm các thay đổi sau.

Tính năng mới

  • Cập nhật phần phụ thuộc của Room trên KSP thành

    dependency { implementation("androidx.room:room-paging:2.4.0-alpha04") }

    7 để hỗ trợ Kotlin 1.6

Phiên bản 2.4.0-beta02

Ngày 17 tháng 11 năm 2021

Phát hành dependency { implementation("androidx.room:room-paging:2.4.0-alpha04") }

8. Phiên bản 2.4.0-beta02 bao gồm các thay đổi sau.

Tính năng mới

  • Chúng tôi bổ sung hỗ trợ cho SparseArray và LongSparseArray trong @MapInfo. (Ic91a2b/138910317)

Sửa lỗi

  • Chúng tôi bổ sung một trình phân tích TypeConverter mới có tính đến thông tin về tính chất rỗng của các kiểu. Vì thông tin này chỉ có trong KSP, nên thông tin này được bật theo mặc định chỉ trong KSP. Nếu phương thức này gây ra vấn đề gì, bạn có thể tắt chế độ này bằng cách chuyển room.useNullAwareTypeanalysis=false đến bộ xử lý chú giải. Nếu điều đó xảy ra, vui lòng báo cáo một lỗi vì cờ này sau này sẽ bị xoá. Với trình phân tích TypeConverter mới này, bạn chỉ nên cung cấp các Typeconverters loại không có giá trị rỗng nhận TypeConverters làm trình phân tích mới có khả năng bọc chúng trong một chức năng kiểm tra giá trị rỗng. Xin lưu ý rằng việc này không ảnh hưởng đến những người dùng sử dụng KAPT hoặc Java làm bộ xử lý chú giải (không giống như KSP), không có thông tin về tính chất rỗng cho các kiểu. (, b/193437407)
  • Khắc phục lỗi Room không biên dịch được kèm theo lỗi SQL khi một thực thể FTS khai báo sử dụng trình tạo mã thông báo ICU. (, b/201753224)
  • Giải quyết vấn đề trong chế độ tự động dịch chuyển khi một cột mới được thêm vào một thực thể được nhúng giữa các phiên bản. (I5fcb1b/193798291)
  • Chúng tôi đã giải quyết vấn đề liên quan đến các loại trả về của phương thức truy vấn quan hệ trong các truy vấn LEFT JOIN. Với những thay đổi này, trong trường hợp có ánh xạ 1 với nhiều, tập hợp trả về cho một khoá sẽ không bao gồm đối tượng có giá trị không hợp lệ nếu không tìm thấy đối tượng trong con trỏ. Nếu không tìm thấy giá trị hợp lệ, thì khoá sẽ được ánh xạ tới một tập hợp trống. (Id5552b/201946438)
  • Giải quyết vấn đề tự động di chuyển khi từ khoá SQLite không được loại bỏ trong tên cột. (Idbed4b/197133152)

Phiên bản 2.4.0-beta01

Ngày 13 tháng 10 năm 2021

Phát hành dependency { implementation("androidx.room:room-paging:2.4.0-alpha04") }

9. Phiên bản 2.4.0-beta01 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục vấn đề khi quá trình tự động di chuyển không thêm các cột mới trong khi một bảng khác trong cùng quá trình tự động di chuyển cũng có một cột mới trùng tên. (, b/200818663)
  • Việc triển khai PagingSource tạo bởi room-paging hiện sẽ sử dụng

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun pagingSource(): PagingSource<Int, User> }

    0 truyền qua

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun pagingSource(): PagingSource<Int, User> }

    1, thay vì

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun pagingSource(): PagingSource<Int, User> }

    2 như trước đây, do đó, nó có thể được ghi đè. ()

Phiên bản 2.4.0-alpha05

Ngày 29 tháng 9 năm 2021

Phát hành @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun pagingSource(): PagingSource<Int, User> }

3. Phiên bản 2.4.0-alpha05 bao gồm các thay đổi sau.

Tính năng mới

  • Thêm trình chuyển đổi kiểu (type converter) tích hợp cho UUID. (, b/73132006)

Thay đổi về API

  • Thêm một thuộc tính mới vào chú thích TypeConverters để cho phép nhà phát triển tắt trình chuyển đổi tích hợp Enum và UUID. Theo mặc định, những trình chuyển đổi này sẽ ở trạng thái bật nhưng bạn có thể tắt trong một phạm vi nhất định hoặc cho toàn bộ cơ sở dữ liệu. Xem tài liệu về TypeConverters để biết thông tin chi tiết. (, b/195413406)
  • Hỗ trợ khoá/giá trị không phải POJO cho các loại trả về Multimap trong DAO thông qua chú thích android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 6. ()

android {... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } }

6 sẽ được yêu cầu khi cột khoá hoặc giá trị của bản đồ đều từ một cột duy nhất. Hãy xem ví dụ sau: @MapInfo(valueColumn = "songCount") @Query(""" SELECT *, COUNT(mSongId) as songCount FROM Artist JOIN Song ON Artist.artistName = Song.artist GROUP BY artistName """) fun getArtistAndSongCounts(): Map<Artist, Integer>

  • Đặt

    @MapInfo(valueColumn = "songCount") @Query(""" SELECT *, COUNT(mSongId) as songCount FROM Artist JOIN Song ON Artist.artistName = Song.artist GROUP BY artistName """) fun getArtistAndSongCounts(): Map<Artist, Integer>

    3 làm cấu phần phần mềm bắt buộc khi sử dụng Paging3 với Room. ()

Sửa lỗi

  • Khắc phục vấn đề khi các kết quả truy vấn đa bản đồ không được sắp xếp đúng cách khi truy vấn đó chứa mệnh đề ORDER BY (SẮP XẾP THEO) của một cột từ khoá của bản đồ. ()

Đóng góp bên ngoài

  • Thêm API mới để chỉ định thứ tự các mục trong @Index. Nhờ có Nikita Zhelonkin. ()

Phiên bản 2.4.0-alpha04

Ngày 21 tháng 7 năm 2021

Phát hành @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun pagingSource(): PagingSource<Int, User> }

7. Phiên bản 2.4.0-alpha04 bao gồm các thay đổi sau.

Tính năng mới

  • Room nay hỗ trợ các phương thức

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    9 trả về đa bản đồ, hữu ích cho câu lệnh JOIN. Các loại đa bản đồ được hỗ trợ là

    dependency { implementation("androidx.room:room-paging:2.4.0-alpha04") }

    0 cùng với

    dependency { implementation("androidx.room:room-paging:2.4.0-alpha04") }

    3,

    dependency { implementation("androidx.room:room-paging:2.4.0-alpha04") }

    4 và

    dependency { implementation("androidx.room:room-paging:2.4.0-alpha04") }

    5 của Guava. Sau đây là ví dụ về các truy vấn đa bản đồ: Bản đồ mối quan hệ một với một

    @Query("SELECT * FROM Song JOIN Artist ON Song.artistId = Artist.artistId") fun getSongAndArtist(): Map<Song, Artist>

    Bản đồ mối quan hệ một với nhiều (đa bản đồ tiêu chuẩn)

    @Query("SELECT * FROM Artist JOIN Album ON Artist.id = Album.artistId") fun getArtistAndAlbums(): Map<Artist, List<Album>>

    Kết quả đa bản đồ cũng có thể được gói gọn trong các loại trả về không đồng bộ được hỗ trợ, chẳng hạn như dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 03, dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 04 của Rx hoặc coroutine dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 05.

Room-Paging

  • @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    7 được phát hành, cung cấp dịch vụ hỗ trợ Paging 3.0 gốc cho các cụm từ tìm kiếm của Room trả về

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

  • @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

  • Cấu phần phần mềm này thay thế hoạt động triển khai

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    8 do Room tạo bằng một cấu hình được tạo trên API Paging 3.0. Việc triển khai PagingSource mới sẽ phân tích cú pháp các khoá theo nhiều cách. Vì vậy, mọi khoá được cung cấp theo cách thủ công cho PagingSource của Room sẽ phải xét đến sự thay đổi hành vi này, bao gồm cả initialKey được truyền qua hàm khởi tạo của Pager. Các trang sẽ bắt đầu tải từ dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 09, trong đó dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 09 là mục được tải đầu tiên. Điều này sẽ khác với hành vi hiện tại khi dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 11 được coi là vị trí cuộn của người dùng và các mục được tải cả trước và sau khoá.
  • Cấu phần phần mềm này là không bắt buộc và việc chọn không sử dụng sẽ khôi phục lại tính năng hỗ trợ hiện có cho Paging 3.0 đã được giới thiệu trong Room 2.3. Tuy nhiên, cấu phần phần mềm này sẽ là bắt buộc trong bản phát hành sau này đối với những người sử dụng Room với Paging 3.0. Để chọn sử dụng, hãy thêm cấu phần phần mềm room-paging vào classpath. Nếu đang sử dụng Gradle, bạn có thể thêm đoạn mã sau đây vào build.grade:

    dependency { implementation("androidx.room:room-paging:2.4.0-alpha04") }

Sửa lỗi

  • Khắc phục vấn đề trong di chuyển tự động liên quan đến việc xử lý các lỗi vi phạm khoá ngoại. (b/190113935)

Phiên bản 2.4.0-alpha03

Ngày 16 tháng 6 năm 2021

Phát hành

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

12. Phiên bản 2.4.0-alpha03 bao gồm các thay đổi sau.

Thay đổi về API

  • Cập nhật

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    5 của Room để hỗ trợ quá trình di chuyển tự động bằng cách cung cấp một API hàm khởi tạo mới nhận lớp cơ sở dữ liệu đang được kiểm thử. Điều này cho phép trình trợ giúp tự động thêm tính năng tự động di chuyển theo cách tương tự như trong

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    6.

Sửa lỗi

  • Khắc phục vấn đề với thư viện gốc SQLite của Room để hỗ trợ chip M1 của Apple. (b/174695268
  • Khắc phục vấn đề Room không gặp lỗi khi kiểu dữ liệu trả về của hàm @Transaction là một Flow (Luồng) (, b/190075899)
  • Khắc phục vấn đề trong quá trình di chuyển tự động liên quan đến các chỉ mục. b/177673291

Thông tin cập nhật về phần phụ thuộc

  • Hỗ trợ KSP của Room hiện tại tuỳ thuộc vào KSP dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 15. (, b/160322705)

Phiên bản 2.4.0-alpha02

Ngày 5 tháng 5 năm 2021

Phát hành

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

16. Phiên bản 2.4.0-alpha02 bao gồm các thay đổi sau.

Thay đổi về API

  • @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    2 là một API mới dùng để khai báo rằng

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    3 sẽ được cung cấp trong thời gian chạy thông qua

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    4. Điều này cho phép một khung chèn phần phụ thuộc nhằm cung cấp các quy cách đó khi chúng cần các phần phụ thuộc phức tạp.

Sửa lỗi

  • Khắc phục vấn đề với việc di chuyển tự động khi dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 20 không được tạo lại đúng cách.

Đóng góp bên ngoài

  • Khắc phục vấn đề trong dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 21 của Room khiến cho lệnh gọi lại dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 7 đôi khi bị gọi không hợp lệ, quá trễ hoặc hoàn toàn không gọi được. Nhờ có dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 23 (b/154040286)

Phiên bản 2.4.0-alpha01

Ngày 21 tháng 4 năm 2021

Phát hành

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

24. Phiên bản 2.4.0-alpha01 bao gồm các thay đổi sau.

Tính năng mới

  • Tự động di chuyển (auto-migration): Room hiện cung cấp một API để tự động tạo các lượt di chuyển, miễn là bạn đã xuất giản đồ. Để thông báo rằng Room cần tạo một hành động tự động di chuyển, bạn có thể dùng một thuộc tính mới

    @Query("SELECT * FROM Artist JOIN Album ON Artist.id = Album.artistId") fun getArtistAndAlbums(): Map<Artist, List<Album>>

    9 để khai báo các phiên bản được tự động di chuyển qua lại. Khi Room cần thêm thông tin về việc thay đổi tên hoặc xoá bảng và cột, thì chú thích

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    0 có thể khai báo một lớp tham số chứa các thông tin đầu vào đó. Xem tài liệu

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    0 để biết thêm thông tin chi tiết.

Sửa lỗi

  • Khắc phục vấn đề khi hệ thống xác thực giản đồ của Room đã xác thực không chính xác dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 28 thừa dấu ngoặc. b/182284899

Phiên bản 2.3.0

Phiên bản 2.3.0

Ngày 21 tháng 4 năm 2021

Phát hành

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

29. Phiên bản 2.3.0 bao gồm các thay đổi sau.

Thay đổi quan trọng kể từ phiên bản 2.2.0

  • Hỗ trợ Enum tích hợp sẵn: Hiện tại, Room sẽ mặc định sử dụng trình chuyển đổi kiểu dữ liệu Enum sang String và ngược lại nếu không có tuỳ chọn nào được cung cấp. Nếu đã có sẵn một trình chuyển đổi kiểu dữ liệu cho enum (một tập hợp giá trị có thể có của một thuộc tính), thì Room sẽ ưu tiên sử dụng trình chuyển đổi đó thay vì trình chuyển đổi mặc định.
  • Gọi lại truy vấn: Room hiện cung cấp một Callback API RoomDatabase.QueryCallback khi có các truy vấn sắp được thực thi. Điều này có thể hữu ích cho việc ghi lại các bản gỡ lỗi. Bạn có thể đặt lệnh gọi lại qua dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 30.
  • Cải tiến phần đóng gói trước: Room hiện có các API để tạo cơ sở dữ liệu bằng cách sử dụng cơ sở dữ liệu đóng gói trước được đọc từ luồng dữ liệu đầu vào. Điều này cho phép các trường hợp như khi cơ sở dữ liệu đóng gói trước được nén.
  • Cung cấp trình chuyển đổi kiểu dữ liệu: Room hiện có các API để cung cấp thực thể trình chuyển đổi kiểu dữ liệu giúp ứng dụng kiểm soát việc khởi chạy các trình chuyển đổi đó. Để đánh dấu một trình chuyển đổi kiểu sẽ được cung cấp cho Room, hãy sử dụng chú thích mới @ProvidedTypeSwitcher.
  • Hỗ trợ RxJava3: Room nay hỗ trợ các loại RxJava3. Tương tự như RxJava2, bạn có thể khai báo các phương thức DAO có loại trả về là Flowable, Single, Maybe và Completable. Ngoài ra, còn có một cấu phần phần mềm mới dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 31 hỗ trợ RxJava3.
  • Hỗ trợ Paging 3.0: Nay Room sẽ hỗ trợ việc triển khai cho các phương thức chú thích

    @Query("SELECT * FROM Song JOIN Artist ON Song.artistId = Artist.artistId") fun getSongAndArtist(): Map<Song, Artist>

    7 có loại trả về là

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    8.

Phiên bản 2.3.0-rc01

Ngày 24 tháng 3 năm 2021

Phát hành

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

34. Phiên bản 2.3.0-rc01 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục vấn đề đã ngăn việc sử dụng các truy vấn Coroutine FLow do Room tạo trong một khối dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 35 đang tạm ngưng. (I797bf)

Phiên bản 2.3.0-beta03

Ngày 10 tháng 3 năm 2021

Phát hành

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

36. Phiên bản 2.3.0-beta03 bao gồm các thay đổi sau.

Tính năng mới

  • Thêm tính năng hỗ trợ biên dịch gia tăng cho KSP. (, b/176453350)

Sửa lỗi

  • Sửa lỗi khi việc tạo PagingSource trên chuỗi chính có thể kích hoạt lỗi ANR. (, b/181221318)
  • Đặt chế độ hiển thị dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 37 ở chế độ công khai thay vì chế độ riêng tư của gói. (b/181356119)

Đóng góp bên ngoài

  • Cho phép Room chấp nhận loại trả về POJO trong phương thức DAO được chú thích

    @Query("SELECT * FROM Song JOIN Artist ON Song.artistId = Artist.artistId") fun getSongAndArtist(): Map<Song, Artist>

    7 khi nó cũng được chú thích bằng dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 39. Room sẽ cố gắng chuyển đổi kết quả truy vấn sang loại trả về POJO theo cách tương tự như đối với phương thức DAO được chú thích của dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 40. Nhờ có "Markus Riegel" | hey@marcorei.com'. (I45acb)

Phiên bản 2.3.0-beta02

Ngày 18 tháng 2 năm 2021

Phát hành

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

41. Phiên bản 2.3.0-beta02 bao gồm các thay đổi sau.

Tính năng mới

  • Room nay hỗ trợ thử nghiệm cho Kotlin Symbol Processing KSP. KSP thay thế cho KAPT để chạy các trình xử lý chú giải vốn có trên trình biên dịch Kotlin, giúp giảm đáng kể thời gian tạo bản dựng. Để sử dụng Room với KSP, bạn có thể áp dụng trình bổ trợ KSP Gradle và thay thế cấu hình dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 42 trong tệp bản dựng bằng dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 43. Ví dụ: thay vì dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 44, hãy sử dụng dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 45. Xem tài liệu về KSP để biết thêm thông tin chi tiết. Lưu ý rằng vì KSP đang trong quá trình thử nghiệm, bạn vẫn nên sử dụng KAPT cho mã sản xuất. Việc giảm thời gian xây dựng chỉ có thể áp dụng khi không có trình xử lý nào khác dùng KAPT. Xem b/160322705 để nắm được các lỗi đã biết.

Phiên bản 2.3.0-beta01

Ngày 27 tháng 1 năm 2021

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

46 được phát hành. Phiên bản 2.3.0-beta01 bao gồm các thay đổi sau.

Tính năng mới

  • Cơ sở dữ liệu tự động đóng: Room nay có khả năng đóng các cơ sở dữ liệu không được truy cập sau một khoảng thời gian nhất định. Đây là tính năng thử nghiệm và có thể bật bằng cách gọi dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 47. Tính năng này hữu ích cho các ứng dụng có nhiều cơ sở dữ liệu.

Sửa lỗi

  • Khắc phục vấn đề về việc các phương thức Dao có nhiều phương thức dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 48 hoặc dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 49 với các chiến lược xung đột sẽ tạo ra mã chỉ với một trong những chiến lược đó, bỏ qua chiến lược đã xác định. (, b/176138543)

Phiên bản 2.3.0-alpha04

Ngày 16 tháng 12 năm 2020

Phát hành

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

50. Phiên bản 2.3.0-alpha04 bao gồm các thay đổi sau.

Tính năng mới

  • Room nay cung cấp API gọi lại chung dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 51 dùng khi các cụm từ tìm kiếm sắp thực thi. Điều này có thể hữu ích cho việc ghi nhật ký các bản dựng gỡ lỗi. Bạn có thể đặt lệnh gọi lại qua dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 30. (, b/174478034, b/74877608)
  • Room hiện sẽ mặc định sử dụng trình chuyển đổi kiểu dữ liệu Enum sang String và ngược lại nếu không có tuỳ chọn nào được cung cấp. Nếu đã có sẵn một trình chuyển đổi kiểu dữ liệu cho enum (một tập hợp giá trị có thể có của một thuộc tính), thì Room sẽ ưu tiên sử dụng trình chuyển đổi đó thay vì trình chuyển đổi mặc định. (b/73132006)

Vấn đề đã biết

  • Nếu đã có một trình chuyển đổi loại một chiều cho Enum, thì Room có thể vô tình sử dụng trình chuyển đổi String sang Enum được tích hợp sẵn. Đây có thể là điều không được mong muốn. Vấn đề này đã được biết và có thể khắc phục bằng cách chuyển thành chuyển đổi hai chiều. Xem: b/175707691

Sửa lỗi

  • Khắc phục vấn đề Room sẽ vô hiệu hoá không chính xác quá trình xử lý chú giải gia tăng trong các phiên bản JDK mới hơn. (b/171387388)
  • Khắc phục vấn đề về việc Room tìm thấy lớp được tạo khi sử dụng nhiều trình tải lớp. Nhờ có bản sửa lỗi "Serendipity | 892449346@qq.com!" (b/170141113)
  • Khắc phục vấn đề Room sẽ tạo mã không chính xác khi một Kotlin

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    9 có một lớp cơ sở có các tham số chung là các dữ liệu nguyên gốc trong JVM. (b/160258066)

Đóng góp bên ngoài

  • Giờ đây Room sẽ mặc định sử dụng dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 54 nếu chế độ WAL được bật và API từ 16 trở lên. Nhờ có "Ahmed I". Khalil | ahmedibrahimkhali@gmail.com’! (b/126258791)

Phiên bản 2.3.0-alpha03

Ngày 14 tháng 10 năm 2020

Phát hành

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

55. Phiên bản 2.3.0-alpha03 bao gồm các thay đổi sau.

Tính năng mới

  • Các trình chuyển đổi kiểu được cung cấp: Room nay có API để cung cấp các phiên bản trình chuyển đổi loại giúp ứng dụng kiểm soát việc khởi chạy của các trình chuyển đổi đó. Để đánh dấu một trình chuyển đổi kiểu sẽ được cung cấp cho Room, hãy sử dụng chú thích mới dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 56. Nhờ có "mzgreen yairobbe@gmail.com". (, b/121067210)
  • Room hiện có các API để tạo cơ sở dữ liệu bằng cách sử dụng cơ sở dữ liệu đóng gói trước được đọc từ luồng dữ liệu đầu vào. Điều này cho phép các trường hợp như khi cơ sở dữ liệu đóng gói trước được nén. Nhờ có "Ahmed El-Helw ahmedre@gmail.com" (3e6792, b/146911060)

Thay đổi về API

  • Thêm mục tiêu còn thiếu vào chú thích dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 57 để ngăn việc sử dụng bên ngoài chú thích dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 58. ()
  • Trường dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 59 trong dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 60 nay bị ẩn. (d576cb, b/76109329)

Sửa lỗi

  • Cập nhật tài liệu về TypeConverters để làm rõ rằng bạn chỉ có thể sử dụng TypeConverters để chuyển đổi cột/trường chứ không phải hàng. (, b/77307836)
  • Cập nhật lên DaoProcessor để khắc phục lỗi trình biên dịch trên Dao bằng một loại siêu cấp chung với "các dữ liệu nguyên bản" Kotlin. (, b/160258066)
  • Cập nhật tài liệu về phương thức thêm/xoá trình quan sát để làm rõ luồng (, b/153948821)
  • Khắc phục vấn đề về việc Room xác thực không chính xác bảng FTS khi khai báo cột rowid. (d62ebc, b/145858914)

Đóng góp bên ngoài

  • Khắc phục các vấn đề về ngôn ngữ viết hoa/chữ thường liên quan đến tiếng Thổ Nhĩ Kỳ (5746e3), b/68159494
  • Thay thế dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 61 bên trong dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 62 bằng dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 63 để tránh các vấn đề trên Android Lollipop (d1cfc7, b/162431855)
  • Thêm lệnh gọi lại onOpenPrepackagedDatabase khi một DB được đóng gói trước được sao chép. (, b/148934423)

Phiên bản 2.3.0-alpha02

Ngày 22 tháng 7 năm 2020

Phát hành

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

64. Phiên bản 2.3.0-alpha02 bao gồm các thay đổi sau.

Tính năng mới

  • Hỗ trợ RxJava3: Room nay hỗ trợ các loại RxJava3. Tương tự như RxJava2, bạn có thể khai báo các phương thức DAO có loại trả về là Flowable, Single, Maybe và Completable. Ngoài ra, còn có một cấu phần phần mềm mới dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 31 hỗ trợ RxJava3. (b/152427884)

Thay đổi về API

  • Việc khai báo dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 66 trong lớp Đối tượng Kotlin nay được hỗ trợ. (b/151110764)
  • Tuỳ chọn xử lý chú thích gia tăng của Room hiện là ON (BẬT) theo mặc định. (b/112110217)

Phiên bản 2.3.0-alpha01

Ngày 10 tháng 6 năm 2020

Phát hành

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

67. Phiên bản 2.3.0-alpha01 bao gồm các thay đổi sau.

Tính năng mới

  • Hỗ trợ Paging 3.0: Nay Room sẽ hỗ trợ việc triển khai cho các phương thức chú thích

    @Query("SELECT * FROM Song JOIN Artist ON Song.artistId = Artist.artistId") fun getSongAndArtist(): Map<Song, Artist>

    7 có loại trả về là

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

  • @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun pagingSource(): PagingSource<Int, User> }

Thay đổi về API

  • dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 70 là một chú thích tiện lợi mới giúp Room ghi lại phép chiếu "*" trong truy vấn để xoá các cột không được sử dụng trong kết quả.
  • Tuỳ chọn bộ xử lý dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 71 hiện không còn được sử dụng. Sử dụng dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 70 để thay thế cho những truy vấn tối ưu hoá Room bằng các phép chiếu sao. Lưu ý rằng dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 70 không thay thế giải pháp xung đột cột dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 71 liên quan đến các loại trả về có chứa các trường dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 75.

Sửa lỗi

  • Khắc phục lỗi trong đó Room không phát hiện chính xác phiên bản JDK dùng để bật trình xử lý chú giải gia tăng. Nhờ có Blaz Solar (me@blaz.solar) (b/155215201)
  • Room hiện nhúng phần phụ thuộc ANTLR với bộ xử lý chú giải để tránh xung đột phiên bản với các bộ xử lý khác cũng sử dụng ANTLR. (b/150106190)

Phiên bản 2.2.6

Phiên bản 2.2.6

Ngày 16 tháng 12 năm 2020

Phát hành

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

76. Phiên bản 2.2.6 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục vấn đề Room sẽ vô hiệu hoá không chính xác quá trình xử lý chú giải gia tăng trong các phiên bản JDK mới hơn. (b/171387388)

Phiên bản 2.2.5

Phiên bản 2.2.5

Ngày 18 tháng 3 năm 2020

Phát hành

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

77. Phiên bản 2.2.5 bao gồm các thay đổi sau.

Sửa lỗi

  • Tạo dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 78 directBootAware. Nhờ có "Mygod contact-git@mygod.be" (b/148240967)
  • Khắc phục lỗi gây ra sự cố khi bật tính năng vô hiệu hoá nhiều phiên bản và cơ sở dữ liệu chứa thực thể FTS. (b/148969394)
  • Khắc phục vấn đề khi việc tải thư viện gốc SQLite trong trình xử lý chú giải Room khiến trình biên dịch gặp sự cố do biên dịch song song. (b/146217083)

Phiên bản 2.2.4

Phiên bản 2.2.4

Ngày 19 tháng 2 năm 2020

Phát hành

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

79,

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

80,

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

81,

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

82,

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

83,

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

84,

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

85 và

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

86. Phiên bản 2.2.4 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục vấn đề về giao dịch tạm ngưng do tắc nghẽn nếu coroutine bị huỷ nhanh trước khi giao dịch thực sự bắt đầu. (b/148181325)
  • Khắc phục vấn đề @Generated bị dùng sai khi tạo bằng JDK 9. (b/146538330)
  • Khắc phục vấn đề Room sẽ tạo mã không chính xác khi giao diện DAO trong Kotlin có hàm concrete. (b/146825845)

Phiên bản 2.2.3

Phiên bản 2.2.3

Ngày 18 tháng 12 năm 2019

Phát hành

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

87. Phiên bản 2.2.3 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục lỗi Room không xác thực được cơ sở dữ liệu chưa được di chuyển lần nào và chứa hàm băm cũ với các chỉ mục trong giản đồ. (b/139306173)

Phiên bản 2.2.2

Phiên bản 2.2.2

Ngày 20 tháng 11 năm 2019

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

88 được phát hành. Phiên bản 2.2.2 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục lỗi trong đó việc thu thập mối quan hệ một với một với hơn 999 hàng sẽ khiến Room trả về các mục liên quan rỗng. (b/143105450)

Phiên bản 2.2.1

Phiên bản 2.2.1

Ngày 23 tháng 10 năm 2019

Phát hành

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

89. Phiên bản 2.2.1 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục một lỗi khiến Room cảnh báo không chính xác về dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 90 khi tuỳ chọn trình biên dịch dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 91 được bật. (b/140759491)
  • Thêm cơ chế thử lại để xử lý thư viện gốc bị thiếu mà cần dùng để xác minh truy vấn trong thời gian biên dịch

Phiên bản 2.2.0

Phiên bản 2.2.0

Ngày 9 tháng 10 năm 2019

Phát hành

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

92. Phiên bản 2.2.0 bao gồm các thay đổi sau.

Thay đổi quan trọng kể từ phiên bản 2.1.0

  • Cơ sở dữ liệu đóng gói trước: Hiện bạn có thể dùng 2 API mới trong

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun pagingSource(): PagingSource<Int, User> }

    1 để tạo dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 62 với một tệp cơ sở dữ liệu đã điền sẵn. dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 95 dành cho các tệp cơ sở dữ liệu đã điền sẵn nằm trong thư mục tài sản của tệp APK, còn dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 96 dùng khi tệp này nằm ở một vị trí tuỳ ý. Việc sử dụng các API này sẽ làm thay đổi hành vi của quá trình di chuyển có xoá để trong quá trình di chuyển dự phòng, Room sẽ cố gắng sao chép lại cơ sở dữ liệu đã điền sẵn nếu có. Nếu không, Room sẽ chỉ dừng và tạo lại tất cả các bảng. b/62185732
  • Giá trị mặc định của giản đồ: dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 97 hiện có một thuộc tính mới dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 28 có thể dùng để chỉ định giá trị mặc định của cột. Các giá trị mặc định là một phần của giản đồ cơ sở dữ liệu và sẽ được xác thực trong quá trình di chuyển nếu được chỉ định. b/64088772
  • Mối quan hệ nhiều với nhiều: dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 99 hiện có một thuộc tính mới android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 00 đưa vào chú thích mới android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 01, được dùng để khai báo mối quan hệ cần được đáp ứng thông qua bảng kết nối (còn được gọi là bảng tham gia). b/69201917
  • Mối quan hệ một với một: Hạn chế trong các trường POJO có chú giải dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 99 là loại android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 03 hoặc android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 0 đã được gỡ bỏ, cho phép các mối quan hệ một giá trị được thể hiện hiệu quả. b/62905145
  • Thực thể mục tiêu: Các chú thích DAO android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 05, dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 48 và dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 49 hiện có một thuộc tính mới android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 08, cho phép chỉ định bảng mục tiêu để phương thức DAO hoạt động. Việc này cho phép tham số của các phương thức DAO đó trở thành các POJO tuỳ ý và được hiểu là các thực thể một phần. Trong thực tế, thao tác này cho phép chèn, xoá và cập nhật một phần.b/127549506
  • Coroutine Flow: Hiện tại, các phương thức DAO của

    @Query("SELECT * FROM Song JOIN Artist ON Song.artistId = Artist.artistId") fun getSongAndArtist(): Map<Song, Artist>

    7 có thể thuộc loại trả về android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 10. Flow được trả về sẽ cho ra lại một tập hợp giá trị mới nếu các bảng quan sát trong truy vấn không hợp lệ. Khai báo hàm DAO với kiểu dữ liệu trả về android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 11 là một lỗi. Thay vào đó, Room khuyến khích bạn sử dụng dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 05 rồi dùng các hàm lân cận để chuyển đổi dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 05 thành android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 14. b/130428884
  • Trình xử lý chú giải gia tăng Gradle: Room hiện là trình xử lý chú giải dành riêng cho Gradle và bạn có thể bật tính năng gia tăng thông qua tuỳ chọn dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 4 của trình xử lý. Xem bài viết về để biết thêm thông tin. Nếu bạn gặp bất kỳ vấn đề nào, vui lòng báo cáo lỗi tại đây. Chúng tôi dự định bật tính năng tăng dần theo mặc định trong phiên bản ổn định trong tương lai. b/112110217
  • Mở rộng phép chiếu: Một tuỳ chọn trình biên dịch thử nghiệm mới dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 71 được thêm, khiến Room ghi lại truy vấn với một phép chiếu sao (star projection) để chỉ chứa các cột thuộc loại trả về POJO. Ví dụ: đối với phương thức DAO có android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 17 trả về một POJO có tên android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 18 với chỉ hai trường. Sau đó, Room sẽ ghi lại truy vấn thành android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 19 sao cho tìm nạp được nhóm cột tối thiểu đáp ứng loại trả về. Điều này về cơ bản sẽ loại bỏ cảnh báo dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 90 xuất hiện khi truy vấn trả về các cột thừa không khớp với bất kỳ trường nào trong loại POJO trả về.

Phiên bản 2.2.0-rc01

Ngày 5 tháng 9 năm 2019

Phát hành

android {... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } }

21. Bạn có thể xem các thay đổi trong phiên bản này tại đây.

Không có thay đổi công khai nào kể từ Room

android {... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } }

22.

Phiên bản 2.2.0-beta01

Ngày 22 tháng 8 năm 2019

Phát hành

android {... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } }

23. Bạn có thể xem các thay đổi trong phiên bản này tại đây.

Sửa lỗi

  • Khắc phục lỗi truy vấn Coroutine Flow sẽ ngừng thu thập các giá trị mới sau một thời gian nhất định. (b/139175786)
  • Khắc phục lỗi Room không chấp nhận mã băm của giản đồ cũ trong khi mở cơ sở dữ liệu chưa được di chuyển kể từ Room 1.0, gây ra sự cố thời gian chạy do giản đồ không hợp lệ. (b/139306173)

Phiên bản 2.2.0-alpha02

Ngày 7 tháng 8 năm 2019

Phát hành

android {... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } }

24. Bạn có thể xem các thay đổi trong phiên bản này tại đây.

Tính năng mới

  • Coroutine Flow: Hiện tại, các phương thức DAO của

    @Query("SELECT * FROM Song JOIN Artist ON Song.artistId = Artist.artistId") fun getSongAndArtist(): Map<Song, Artist>

    7 có thể thuộc loại trả về android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 10. Flow được trả về sẽ cho ra lại một tập hợp giá trị mới nếu các bảng quan sát trong truy vấn không hợp lệ. Khai báo hàm DAO với kiểu dữ liệu trả về android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 11 là một lỗi. Thay vào đó, Room khuyến khích bạn sử dụng dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 05 rồi dùng các hàm lân cận để chuyển đổi dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 05 thành android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 14. b/130428884
  • Mở rộng phép chiếu: Một tuỳ chọn trình biên dịch thử nghiệm mới dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 71 được thêm, khiến Room ghi lại truy vấn với một phép chiếu sao (star projection) để chỉ chứa các cột thuộc loại trả về POJO. Ví dụ: đối với phương thức DAO có android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 17 trả về một POJO có tên android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 18 với chỉ hai trường. Sau đó, Room sẽ ghi lại truy vấn thành android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 19 sao cho tìm nạp được nhóm cột tối thiểu đáp ứng loại trả về. Điều này về cơ bản sẽ loại bỏ cảnh báo dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 90 xuất hiện khi truy vấn trả về các cột thừa không khớp với bất kỳ trường nào trong loại POJO trả về.
  • android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 36 là một API gọi lại mới được thêm vào android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 37 khi Room di chuyển một cơ sở dữ liệu theo cách huỷ bỏ. b/79962330

Sửa lỗi

  • Khắc phục lỗi khi Room tạo mã không chính xác bằng cách dùng một phương thức làm phương thức đặt giá trị trường khi trường được bảo vệ. b/136194628
  • Khắc phục lỗi làm cho InvalidationTracker gửi một NPE vào quy trình thứ hai khi tính năng vô hiệu hoá nhiều phiên bản được bật và dịch vụ vô hiệu hoá bị huỷ. b/137454915
  • Khắc phục lỗi Room không xác định chính xác kiểu dữ liệu trả về của hàm tạm ngưng kế thừa được chú giải bằng dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 40. b/137878827
  • Cập nhật mã đã tạo cho dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 99 khi khoá liên quan thuộc loại BLOB để sử dụng android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 40 có thể so sánh. b/137881998
  • Khắc phục lỗi khi Room sẽ khiếu nại về việc bị thiếu phương thức setter trên POJO được sử dụng làm tham số thực thể một phần của android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 05, dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 48 và dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 49. b/138664463
  • Khắc phục lỗi Room sẽ khiếu nại về việc thiếu phương thức getter và setter cho một cột bị bỏ qua thông qua dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 58 khi lớp thực thể được sử dụng trong một số phương thức DAO. b/138238182
  • Khắc phục một lỗi khi Room không chuyển đổi chính xác tham số liên kết sang tham số vị trí, gây ra lỗi ngoại lệ thời gian chạy khi thực thi truy vấn có tham số sử dụng lại. b/137254857

Phiên bản 2.2.0-alpha01

Ngày 10 tháng 7 năm 2019

Tính năng mới

  • Cơ sở dữ liệu đóng gói trước: Hiện bạn có thể dùng 2 API mới trong

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun pagingSource(): PagingSource<Int, User> }

    1 để tạo dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 62 với một tệp cơ sở dữ liệu đã điền sẵn. dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 95 dành cho các tệp cơ sở dữ liệu đã điền sẵn nằm trong thư mục tài sản của tệp APK, còn dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 96 dùng khi tệp này nằm ở một vị trí tuỳ ý. Việc sử dụng các API này sẽ làm thay đổi hành vi của quá trình di chuyển có xoá để trong quá trình di chuyển dự phòng, Room sẽ cố gắng sao chép lại cơ sở dữ liệu đã điền sẵn nếu có. Nếu không, Room sẽ chỉ dừng và tạo lại tất cả các bảng. b/62185732
  • Giá trị mặc định của giản đồ: dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 97 hiện có một thuộc tính mới dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 28 có thể dùng để chỉ định giá trị mặc định của cột. Các giá trị mặc định là một phần của giản đồ cơ sở dữ liệu và sẽ được xác thực trong quá trình di chuyển nếu được chỉ định. b/64088772 Lưu ý: Nếu giản đồ cơ sở dữ liệu của bạn đã có các giá trị mặc định, chẳng hạn như các giá trị được thêm qua android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 51 và bạn quyết định xác định các giá trị mặc định thông qua dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 97 cho cùng một cột, thì bạn có thể cần phải cung cấp một lượt di chuyển để xác thực giá trị mặc định không được tính đến. Xem phần để biết thêm thông tin.
  • Mối quan hệ nhiều với nhiều: dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 99 hiện có một thuộc tính mới android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 00 đưa vào chú thích mới android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 01, được dùng để khai báo mối quan hệ cần được đáp ứng thông qua bảng kết nối (còn được gọi là bảng tham gia). b/69201917
  • Mối quan hệ một với một: Hạn chế trong các trường POJO có chú giải dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 99 là loại android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 03 hoặc android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 0 đã được gỡ bỏ, cho phép các mối quan hệ một giá trị được thể hiện hiệu quả. b/62905145
  • Thực thể mục tiêu: Các chú thích DAO android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 05, dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 48 và dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 49 hiện có một thuộc tính mới android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 08, cho phép chỉ định bảng mục tiêu để phương thức DAO hoạt động. Việc này cho phép tham số của các phương thức DAO đó trở thành các POJO tuỳ ý và được hiểu là các thực thể một phần. Trong thực tế, thao tác này cho phép chèn, xoá và cập nhật một phần.b/127549506
  • Trình xử lý chú giải gia tăng Gradle: Room hiện là trình xử lý chú giải dành riêng cho Gradle và bạn có thể bật tính năng gia tăng thông qua tuỳ chọn dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 4 của trình xử lý. Xem bài viết về để biết thêm thông tin. Nếu bạn gặp bất kỳ vấn đề nào, vui lòng báo cáo lỗi tại đây. Chúng tôi dự định bật tính năng tăng dần theo mặc định trong phiên bản ổn định trong tương lai. b/112110217

Sửa lỗi

  • Room sẽ không còn truyền android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 64 tới trình xử lý lỗi toàn cầu khi dòng Rx của truy vấn đã được xử lý trước khi truy vấn hoàn tất. b/130257475
  • Khắc phục lỗi Room cho thấy thông báo lỗi không chính xác khi hàm DAO tạm ngưng được chú thích bằng dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 40 không có loại trả về. b/134303897
  • Room sẽ không còn tạo bộ chuyển đổi DAO với các kiểu dữ liệu thô nữa.b/135747255

Phiên bản 2.1.0

Phiên bản 2.1.0

Ngày 13 tháng 6 năm 2019

Room 2.1.0 được phát hành mà không có thay đổi nào từ

android {... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } }

66. Bạn có thể xem các thay đổi trong phiên bản này tại đây.

Thay đổi quan trọng kể từ phiên bản 2.0.0

  • FTS: Room hiện hỗ trợ các thực thể có bảng FTS3 hoặc FTS4 ánh xạ. Các lớp được chú thích bằng dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 58 hiện có thể được chú thích thêm bằng android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 68 hoặc android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 69 để khai báo một lớp có bảng tìm kiếm dạng văn bản đầy đủ. Các tuỳ chọn FTS để tuỳ chỉnh thêm hiện có sẵn thông qua các phương thức chú thích.
  • Thành phần hiển thị (View): Room hiện hỗ trợ việc khai báo một lớp như là một truy vấn đã lưu, còn gọi là một thành phần hiển thị (view), bằng cách sử dụng chú thích dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 20.
  • Coroutine: Hiện tại, các phương thức DAO có thể là các hàm tạm ngưng. Thêm android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 71 vào các phần phụ thuộc để tận dụng chức năng này. Cấu phần phần mềm ktx cũng cung cấp hàm tiện ích android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 72 để thực hiện các giao dịch cơ sở dữ liệu trong một coroutine.
  • Giá trị tự động: Room hiện hỗ trợ khai báo các lớp có chú giải AutoValue dưới dạng các thực thể và POJO. Giờ đây, bạn có thể khai báo các chú thích android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 73, dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 97, dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 75 và dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 99 trong Room theo phương thức trừu tượng của lớp có giá trị tự động được chú thích. Xin lưu ý rằng chú thích này cũng phải đi kèm với android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 77 để Room hiểu đúng các chú thích đó.
  • Hỗ trợ không đồng bộ bổ sung: Các phương thức DAO được chú thích bằng

    android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 05, dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 49 hoặc dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 48, cùng với

    @Query("SELECT * FROM Song JOIN Artist ON Song.artistId = Artist.artistId") fun getSongAndArtist(): Map<Song, Artist>

    7 chứa android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 82, android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 83 hoặc câu lệnh android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 84, hiện hỗ trợ loại trả về Rx android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 85, android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 86, android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 87, và loại trả về của Guava android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 88, và chúng cũng đồng thời có thể thành các hàm tạm ngưng.
  • android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } }

    89 là một API mới trong

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun pagingSource(): PagingSource<Int, User> }

    1 để bật tính năng vô hiệu hoá trên nhiều phiên bản của Cơ sở dữ liệu Room sử dụng cùng một tệp cơ sở dữ liệu.
  • android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } }

    91 là một API mới trong

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun pagingSource(): PagingSource<Int, User> }

    1 để tự động tạo lại cơ sở dữ liệu nếu quá trình hạ cấp diễn ra.
  • android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 93 là một API mới trong chú thích dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 58 có thể dùng để liệt kê các trường bị bỏ qua theo tên.
  • Hiện Room có thể sử dụng đúng hàm khởi tạo chính của Kotlin trong các lớp dữ liệu, giúp bạn không cần phải khai báo những thuộc tính này là android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 95.

Phiên bản 2.1.0-rc01

Ngày 29 tháng 5 năm 2019

Sửa lỗi

  • Khắc phục lỗi khởi chạy Room có thể xảy ra do cấu hình temp_store được thiết lập sẵn. b/132602198
  • Khắc phục cảnh báo sử dụng dấu ngoặc kép cho người dùng có SQLite 3.27.0 trở lên. b/131712640
  • Khắc phục lỗi khi nhiều quá trình kiểm tra tính không hợp lệ diễn ra song song khiến InvalidationTracker gặp sự cố. b/133457594

Phiên bản 2.1.0-beta01

Ngày 7 tháng 5 năm 2019

android {... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } }

96 được phát hành mà không có thay đổi nào từ phiên bản 2.1.0-alpha07. Bạn có thể xem các thay đổi trong phiên bản này tại đây.

Phiên bản 2.1.0-alpha07

Ngày 25 tháng 4 năm 2019

Thay đổi về API/Hành vi

  • Hàm tiện ích android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 72 đã được thay đổi để không còn nhận một khối hàm có android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 98 là đối tượng nhận nữa. Điều này giúp bỏ qua trình bao bọc android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 99 bổ sung cần thiết để chạy mọi thứ trong khối giao dịch đồng thời.

Sửa lỗi

  • Khắc phục lỗi khi Room không khớp với một TypeConverter cho hàm Kotlin DAO chứa tham số của kiểu Tập hợp (Collection). b/122066791

Phiên bản 2.1.0-alpha06

Ngày 22 tháng 3 năm 2019

Thay đổi về API/Hành vi

  • Các truy vấn giao dịch không đồng bộ hiện sẽ được nối tiếp sao cho Room sẽ không sử dụng quá một chuỗi để thực hiện các giao dịch cơ sở dữ liệu. android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 00 đã được thêm để cho phép cấu hình trình thực thi cho các giao dịch.
  • android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 01 sẽ không để các trường hợp ngoại lệ đã kiểm tra vào RuntimeExceptions. b/128623748

Sửa lỗi

  • Khắc phục lỗi khi trình theo dõi vô hiệu hoá sẽ ngừng quan sát bảng nội dung nếu bạn thêm trình quan sát cho cả bảng nội dung và bảng FTS nội dung bên ngoài b/128508917
  • Cập nhật ngữ pháp SQLite của Room để phù hợp với SQLite 3.24.0. b/110883668

Phiên bản 2.1.0-alpha05

Ngày 13 tháng 3 năm 2019

Tính năng mới

  • Hàm tiện ích android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 72 cho phép bạn thực hiện các giao dịch cơ sở dữ liệu một cách an toàn trong coroutine. Các hàm tiện ích của Room cùng với sự hỗ trợ của coroutine hiện có trong cấu phần phần mềm android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 71.
  • Giờ đây phương thức DAO không trừu tượng có chú thích

    @Query("SELECT * FROM Artist JOIN Album ON Artist.id = Album.artistId") fun getArtistAndAlbums(): Map<Artist, List<Album>>

    3 có thể là các hàm tạm ngưng. b/120241587

Thay đổi về API/Hành vi

  • Cấu phần phần mềm android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 05 này được đổi tên thành android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 71 theo cách đặt tên tương tự như các cấu phần phần mềm AndroidX khác.
  • android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 07, android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 08 và android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 09 trong dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 62 đã ngừng hoạt động vì android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 11 và android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 71 tiện ích dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 35.

Sửa lỗi

  • Khắc phục lỗi đối số của trình tạo mã thông báo bị loại bỏ nếu trình tạo mã thông báo được sử dụng là SIMPLE. b/125427014
  • Khắc phục lỗi Room không xác định chính xác các hàm tạm ngưng với các tham số thuộc loại nội bộ. b/123767877
  • Khắc phục lỗi phương thức DAO

    @Query("SELECT * FROM Song JOIN Artist ON Song.artistId = Artist.artistId") fun getSongAndArtist(): Map<Song, Artist>

    7 bị hoãn với các câu lệnh android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 82, android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 84 hoặc android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 83 đang chuẩn bị truy vấn trong luồng chính. b/123695593
  • Khắc phục nhiều lỗi khi Room sẽ tạo mã không chính xác cho các hàm tạm ngưng nhất định. b/123466702 và b/123457323
  • Khắc phục lỗi trong đó việc sử dụng các phương thức không dùng nữa không được chặn đúng cách trong mã đã tạo. b/117602586
  • Cập nhật phần phụ thuộc Room của androidx.sqlite lên 1.0.2 có chứa các bản sửa lỗi để xử lý chính xác các cơ sở dữ liệu bị hỏng. b/124476912

Lỗi đã biết

  • Room 2.1.0-alpha05 phụ thuộc vào cấu phần phần mềm android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 18 hiện không có trong Maven Central (KT-27991). Bạn có thể giải quyết phần phụ thuộc này bằng cách thêm android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 19 vào kho lưu trữ của dự án.

Phiên bản 2.1.0-alpha04

Ngày 25 tháng 1 năm 2019

Tính năng mới

  • Các phương thức DAO được chú thích bằng

    @Query("SELECT * FROM Song JOIN Artist ON Song.artistId = Artist.artistId") fun getSongAndArtist(): Map<Song, Artist>

    7 có chứa các câu lệnh android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 82, android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 84 hoặc android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 83 hiện có thể trả về các loại không đồng bộ android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 86, android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 25, android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 85 và android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 88. Ngoài ra, chúng cũng có thể là các hàm tạm ngưng. b/120227284

Thay đổi về API/Hành vi

  • Hiện Room sẽ gửi một lỗi nếu phương thức DAO không trừu tượng có chú giải bằng

    @Query("SELECT * FROM Artist JOIN Album ON Artist.id = Album.artistId") fun getArtistAndAlbums(): Map<Artist, List<Album>>

    3 trả về một loại không đồng bộ, chẳng hạn như android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 86, android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 25, android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 85, dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 03 hoặc android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 88. Vì các giao dịch bị hạn chế, nên Room hiện không thể bắt đầu và kết thúc một giao dịch xung quanh một hàm có thể thực hiện nhiều truy vấn trong các chuỗi khác nhau. b/120109336
  • android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 34 và android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 35 đã bị android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 36 do chúng không hoạt động như dự kiến với các đường liên kết SQLite hiện tại của Android. b/117266738

Sửa lỗi

  • Khắc phục lỗi khi Room không sử dụng đúng TypeConverter của một kiểu dữ liệu trả về nếu phương thức DAO là một hàm tạm ngưng. b/122988159
  • Khắc phục lỗi khi Room xác định nhầm các hàm tạm ngưng kế thừa là hàm không tạm ngưng. b/122902595
  • Khắc phục lỗi trong đó Room tạo mã không chính xác khi trường dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 75 nằm trong lớp cha và được dùng trong nhiều lớp con. b/121099048
  • Khắc phục vấn đề trong đó cơ sở dữ liệu bị gián đoạn khi gọi các hàm tạm ngưng DAO giữa android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 38 và android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 39. b/120854786

Phiên bản 2.1.0-alpha03

Ngày 4 tháng 12 năm 2018

Thay đổi về API

  • FTS android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 40 trong android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 68/ android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 69 hiện lấy một String thay vì một Enum. Việc này cho phép Room sử dụng các trình tạo mã thông báo tuỳ chỉnh. Các trình tạo mã thông báo được tích hợp sẵn vẫn được định nghĩa trong android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 43 dưới dạng hằng số chuỗi. b/119234881

Tính năng mới

  • Coroutine: Hiện tại, các phương thức DAO có thể là các hàm tạm ngưng. Để hỗ trợ việc tạm ngưng các chức năng trong Room, một cấu phần phần mềm mới đã được phát hành ( android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 05). b/69474692
  • Các phương thức DAO chú giải bằng android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 05, dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 49 hoặc dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 48 hiện hỗ trợ android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 88 dưới dạng kiểu dữ liệu trả về. b/119418331

Sửa lỗi

  • Khắc phục lỗi khi Room cố gắng tìm sai hàm khởi tạo có cột trong thuộc tính android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 93 của dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 58. b/119830714
  • Khắc phục lỗi khiến Room không đánh dấu các tham số phương thức DAO là cuối cùng trong quá trình triển khai. b/118015483
  • Khắc phục lỗi khiến trình xử lý của Room gặp sự cố khi báo cáo lỗi về một truy vấn có các ký hiệu đặc biệt. b/119520136
  • Khắc phục lỗi khi Room từ chối nhiều cách triển khai android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 51 khác làm đối số của biểu thức android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 52. b/119884035
  • Khắc phục lỗi khiến LiveData được trả về từ Room sẽ thu thập rác khi quan sát vĩnh viễn khiến cho dữ liệu đó không còn phát ra dữ liệu mới nữa. b/74477406
  • Cập nhật khoá đóng của dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 62 để giảm dung lượng khoá. b/117900450

Phiên bản 2.1.0-alpha02

Ngày 30 tháng 10 năm 2018

Tính năng mới

  • Thêm chức năng hỗ trợ để tham chiếu dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 20 trong dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 99. b/117680932

Sửa lỗi

  • Khắc phục lỗi khiến Room thực hiện I/O ổ đĩa trong luồng chính khi đăng ký và loại bỏ khỏi một kiểu dữ liệu trả về Rx. b/117201279
  • Khắc phục lỗi khi Room không tìm thấy trình chuyển đổi kiểu dữ liệu phù hợp cho một trường trong lớp thực thể Kotlin. b/111404868
  • Khắc phục lỗi khi Room tạo mã không chính xác cho việc triển khai giao diện android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 56 chứa phương thức mặc định Kotlin không có đối số. b/117527454
  • Cập nhật trình phân tích cú pháp ngữ pháp SQLite của Room, khắc phục vấn đề về hiệu suất khiến thời gian xây dựng kéo dài. b/117401230

Phiên bản 2.1.0-alpha01

Ngày 8 tháng 10 năm 2018

Tính năng mới

  • FTS: Room hiện hỗ trợ các thực thể có bảng FTS3 hoặc FTS4 liên kết. Các lớp được chú thích bằng dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 58 nay có thể được chú thích thêm bằng android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 68 hoặc android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 69 để khai báo lớp có bảng tìm kiếm dạng văn bản đầy đủ. Các tuỳ chọn FTS để tuỳ chỉnh thêm hiện có sẵn thông qua các phương thức của chú giải. b/62356416
  • Khung hiển thị (View): Room hiện hỗ trợ việc khai báo một lớp như là một truy vấn đã lưu, còn gọi là khung hiển thị, bằng cách sử dụng chú giải @DatabaseView. b/67033276
  • Giá trị tự động: Room hiện hỗ trợ khai báo các lớp có chú giải AutoValue dưới dạng thực thể và POJO. Giờ đây, bạn có thể khai báo các chú thích android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 73, dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 97, dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 75 và dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 99 trong Room theo phương thức trừu tượng của lớp có giá trị tự động được chú thích. Lưu ý rằng chú giải này cũng phải đi kèm với android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 77 cho Room để hiểu đúng các chú giải. b/62408420
  • Hỗ trợ loại dữ liệu trả về Rx bổ sung: Phương thức DAO được chú thích bằng android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 05, dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 49 hoặc dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 48 nay hỗ trợ cả các loại dữ liệu trả về Rx android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 85, android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 69 và android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 70. b/63317956
  • Các loại không thể thay đổi với dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 99: Trước đây Room yêu cầu các trường chú thích dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 99 bắt buộc phải có thể đặt được, nhưng giờ đây chúng có thể là các tham số của hàm khởi tạo.
  • android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } }

    89: Là một API mới trong

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun pagingSource(): PagingSource<Int, User> }

    1 để cho phép vô hiệu hoá nhiều thực thể của RoomDatabase bằng cách sử dụng cùng một tệp cơ sở dữ liệu. Cơ chế vô hiệu hoá nhiều phiên bản này cũng hoạt động trên nhiều quy trình. b/62334005
  • android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } }

    91: Là một API mới trong

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun pagingSource(): PagingSource<Int, User> }

    1 để tự động tạo lại cơ sở dữ liệu nếu quá trình hạ cấp diễn ra. b/110416954
  • android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 93: Là một API mới trong chú thích dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 58 có thể dùng để liệt kê các trường bị bỏ qua theo tên. Hữu ích khi bỏ qua các trường kế thừa trên một thực thể. b/63522075

Thay đổi về API/Hành vi

  • android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 79 và android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 80 trong dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 62 nay là android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 36 và sẽ bị xoá trong phiên bản mới của Room. b/76109329

Sửa lỗi

  • Khắc phục 2 vấn đề khi Room không khôi phục đúng cách từ một cơ sở dữ liệu bị hỏng hoặc quá trình di chuyển không hợp lệ trong khi khởi động. b/111504749 và b/111519144
  • Hiện Room sẽ sử dụng đúng hàm khởi tạo chính của Kotlin trong các lớp dữ liệu, giúp bạn không cần phải khai báo các trường dưới dạng android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 95. b/105769985

Phiên bản 2.0.0

Phiên bản 2.0.0

Ngày 1 tháng 10 năm 2018

Phát hành

android {... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } }

84 phát hành mà không có thay đổi nào từ phiên bản 2.0.0-rc01.

Phiên bản 2.0.0-rc01

Ngày 20 tháng 9 năm 2018

Phát hành

android {... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } }

85 mà không có thay đổi nào từ phiên bản thử nghiệm 2.0.0-beta01.

Phiên bản 2.0.0-beta01

Ngày 2 tháng 7 năm 2018

Thay đổi về API/Hành vi

  • Thêm android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 86 để cho phép tuỳ chỉnh vị trí chạy truy vấn
  • Bổ sung tính năng hỗ trợ RxJava2 dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 04
  • Các quá trình triển khai DAO và Database đã tạo hiện đã hoàn tất

Sửa lỗi

  • Chỉ định tên lớp/trường trong lỗi "không tìm thấy phương thức getter cho trường" b/73334503
  • Sửa khả năng tương thích ngược của RoomOpenHelper với các phiên bản cũ của Room b/110197391

Phần phụ thuộc Pre-AndroidX

Đối với các phiên bản pre-AndroidX của Room, hãy thêm các phần phụ thuộc sau:

dependencies {val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") }

0

Phiên bản 1.1.1

Phiên bản 1.1.1

Ngày 19 tháng 6 năm 2018

Room

android {... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } }

88 giống với Room

android {... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } }

89.

Phiên bản 1.1.1-rc1

Ngày 16 tháng 5 năm 2018. Bạn nên sử dụng Room

android {... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } }

89 thay vì

android {... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } }

91 nếu bạn thực hiện quá trình di chuyển.

Khắc phục lỗi khi Room không xử lý đúng cách quy trình khởi động sau khi di chuyển b/79362399

Phiên bản 1.1.0

Phiên bản 1.1.0-beta3

Ngày 19 tháng 4 năm 2018

Sửa lỗi

  • Khắc phục lỗi biên dịch khi một Kotlin POJO tham chiếu đến một thực thể liên quan đã được xác định trong Java b/78199923

Phiên bản 1.1.0-beta2

Ngày 5 tháng 4 năm 2018

Sửa lỗi

  • Khắc phục một lỗi nghiêm trọng trong các hoạt động triển khai Rx android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 86 và android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 87 của Room, trong đó việc này sẽ lặp lại truy vấn trước, gây ra sự cố nếu bạn thêm nhiều hơn 1 vật quan sát cho các phiên bản được trả về android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 86 hoặc android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += [ "room.schemaLocation":"$projectDir/schemas".toString(), "room.incremental":"true" ] } } } } 87. b/76031240
  • [RoomDatabase.clearAllTables][ref-clearAllTables] sẽ không android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 96 cơ sở dữ liệu nếu cơ sở dữ liệu được gọi từ nội tại một giao dịch. b/77235565

Phiên bản 1.1.0-beta1

Ngày 21 tháng 3 năm 2018

Thay đổi về API

  • Dựa trên ý kiến phản hồi về đánh giá API, dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 40 không chấp nhận việc truyền android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 98 dưới dạng tham số truy vấn nữa. Bạn cần sử dụng [SupportSQLiteQuery][ref-SupportSQLiteQuery]. (xem [SimpleSQLiteQuery][ref-SimpleSQLiteQuery] để dễ sàng tạo một phiên bản của [SupportSQLiteQuery][ref-SupportSQLiteQuery] với đối số support).
  • Giờ đây phương thức RoomDatabase.Builder's [fallbackToDestructiveMigrationFrom][ref-fallbackToDestructiveMigrationFrom] chấp nhận

    android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 99 thay cho

    @MapInfo(valueColumn = "songCount") @Query(""" SELECT *, COUNT(mSongId) as songCount FROM Artist JOIN Song ON Artist.artistName = Song.artist GROUP BY artistName """) fun getArtistAndSongCounts(): Map<Artist, Integer>

    00.

Sửa lỗi

  • [RoomData.clearAllTables][ref-clearAllTables] nay cố gắng trả về không gian cho hệ điều hành bằng cách thiết lập một điểm kiểm tra WAL và android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments += mapOf( "room.schemaLocation" to "$projectDir/schemas", "room.incremental" to "true" ) } } } } 96 cơ sở dữ liệu.
  • [

    dependencies { val room_version = "2.5.0" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") // To use Kotlin Symbol Processing (KSP) ksp("androidx.room:room-compiler:$room_version") // optional - Kotlin Extensions and Coroutines support for Room implementation("androidx.room:room-ktx:$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") } 40][ref-RawQuery] nay chấp nhận mọi Pojo cho thuộc tính

    @MapInfo(valueColumn = "songCount") @Query(""" SELECT *, COUNT(mSongId) as songCount FROM Artist JOIN Song ON Artist.artistName = Song.artist GROUP BY artistName """) fun getArtistAndSongCounts(): Map<Artist, Integer>

    03, miễn là Pojo tham chiếu đến một hoặc nhiều thực thể qua các trường

    @MapInfo(valueColumn = "songCount") @Query(""" SELECT *, COUNT(mSongId) as songCount FROM Artist JOIN Song ON Artist.artistName = Song.artist GROUP BY artistName """) fun getArtistAndSongCounts(): Map<Artist, Integer>

    04 hoặc

    @MapInfo(valueColumn = "songCount") @Query(""" SELECT *, COUNT(mSongId) as songCount FROM Artist JOIN Song ON Artist.artistName = Song.artist GROUP BY artistName """) fun getArtistAndSongCounts(): Map<Artist, Integer>

    05. b/74041772
  • Paging: Việc triển khai DataSource của Room hiện đã xử lý chính xác các phần phụ thuộc nhiều bảng (chẳng hạn như quan hệ và liên kết). Trước đây, những kết quả này sẽ không kích hoạt được kết quả mới hoặc không biên dịch được. b/74128314

Phiên bản 1.1.0-alpha1

Ngày 22 tháng 1 năm 2018

Tính năng mới

  • @MapInfo(valueColumn = "songCount") @Query(""" SELECT *, COUNT(mSongId) as songCount FROM Artist JOIN Song ON Artist.artistName = Song.artist GROUP BY artistName """) fun getArtistAndSongCounts(): Map<Artist, Integer>

    06: API mới này cho phép các phương thức

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun loadUsers(): PagingSource<Int, User> }

    9 nhận SQL dưới dạng tham số truy vấn b/62103290, b/71458963
  • @MapInfo(valueColumn = "songCount") @Query(""" SELECT *, COUNT(mSongId) as songCount FROM Artist JOIN Song ON Artist.artistName = Song.artist GROUP BY artistName """) fun getArtistAndSongCounts(): Map<Artist, Integer>

    08: API mới này trong

    @Dao interface UserDao { @Query("SELECT * FROM users ORDER BY id ASC") fun pagingSource(): PagingSource<Int, User> }

    1 cho phép kiểm soát chi tiết hơn từ việc bắt đầu di chuyển có xoá các phiên bản giản đồ (so với fallbackToDestructiveMigration)b/64989640
  • Room hiện chỉ hỗ trợ Paging API (API Phân trang) mới hơn (alpha-4+), loại bỏ tính năng hỗ trợ phiên bản

    @MapInfo(valueColumn = "songCount") @Query(""" SELECT *, COUNT(mSongId) as songCount FROM Artist JOIN Song ON Artist.artistName = Song.artist GROUP BY artistName """) fun getArtistAndSongCounts(): Map<Artist, Integer>

    10 không dùng nữa. Để sử dụng phiên bản Room alpha mới, bạn cần sử dụng paging

    @MapInfo(valueColumn = "songCount") @Query(""" SELECT *, COUNT(mSongId) as songCount FROM Artist JOIN Song ON Artist.artistName = Song.artist GROUP BY artistName """) fun getArtistAndSongCounts(): Map<Artist, Integer>

    11 trở lên và chuyển từ

    @MapInfo(valueColumn = "songCount") @Query(""" SELECT *, COUNT(mSongId) as songCount FROM Artist JOIN Song ON Artist.artistName = Song.artist GROUP BY artistName """) fun getArtistAndSongCounts(): Map<Artist, Integer>

    10 sang

    @MapInfo(valueColumn = "songCount") @Query(""" SELECT *, COUNT(mSongId) as songCount FROM Artist JOIN Song ON Artist.artistName = Song.artist GROUP BY artistName """) fun getArtistAndSongCounts(): Map<Artist, Integer>

    13 nếu bạn chưa thực hiện.

Sửa lỗi

  • Tăng cường hỗ trợ cho các loại Kotlin Kapt. b/69164099
  • Thứ tự của các trường không vô hiệu hoá giản đồ nữa. b/64290754

Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.

Cập nhật lần gần đây nhất: 2023-02-25 UTC.

[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Thiếu thông tin tôi cần" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Quá phức tạp/quá nhiều bước" },{ "type": "thumb-down", "id": "outOfDate", "label":"Đã lỗi thời" },{ "type": "thumb-down", "id": "translationIssue", "label":"Vấn đề về bản dịch" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Vấn đề về mẫu/mã" },{ "type": "thumb-down", "id": "otherDown", "label":"Khác" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Dễ hiểu" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Giúp tôi giải quyết được vấn đề" },{ "type": "thumb-up", "id": "otherUp", "label":"Khác" }]

Chủ đề