Fixed
Status Update
Comments
da...@google.com <da...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-main
commit 0154910724cdc44253af1d2f8cede76264783226
Author: Aurimas Liutikas <aurimas@google.com>
Date: Thu Jun 27 15:25:02 2024
Expand native target support for annotation and collection libraries
- Enable watchos and tvos download in importMaven
- Add support for watchos and tvos targets in AndroidXMultiplatformExtension
- Enable watchos and tvos in :annotation:annotation
- Enable linuxArm64, watchos, and tvos in :collection:collection
This work is required as we work towards setting up native stubs for
compose projects.
Test: ./gradlew collection:collection:publish
Bug: 349894318
Change-Id: Idfd1faa3a826bb91ee14722f7437bdcf99cf0018
M annotation/annotation/build.gradle
M buildSrc/private/src/main/kotlin/androidx/build/AndroidXMultiplatformExtension.kt
M buildSrc/public/src/main/kotlin/androidx/build/KmpPlatforms.kt
M collection/collection/build.gradle
M development/build_log_simplifier/messages.ignore
M development/importMaven/src/main/kotlin/androidx/build/importMaven/KmpConfig.kt
https://android-review.googlesource.com/3151736
Branch: androidx-main
commit 0154910724cdc44253af1d2f8cede76264783226
Author: Aurimas Liutikas <aurimas@google.com>
Date: Thu Jun 27 15:25:02 2024
Expand native target support for annotation and collection libraries
- Enable watchos and tvos download in importMaven
- Add support for watchos and tvos targets in AndroidXMultiplatformExtension
- Enable watchos and tvos in :annotation:annotation
- Enable linuxArm64, watchos, and tvos in :collection:collection
This work is required as we work towards setting up native stubs for
compose projects.
Test: ./gradlew collection:collection:publish
Bug: 349894318
Change-Id: Idfd1faa3a826bb91ee14722f7437bdcf99cf0018
M annotation/annotation/build.gradle
M buildSrc/private/src/main/kotlin/androidx/build/AndroidXMultiplatformExtension.kt
M buildSrc/public/src/main/kotlin/androidx/build/KmpPlatforms.kt
M collection/collection/build.gradle
M development/build_log_simplifier/messages.ignore
M development/importMaven/src/main/kotlin/androidx/build/importMaven/KmpConfig.kt
ap...@google.com <ap...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit 39cd1e9f7579513bde139c17f9c51f9012d56152
Author: Aurimas Liutikas <aurimas@google.com>
Date: Thu Jun 27 15:25:02 2024
Expand native target support for annotation and collection libraries
Relandr.android.com/3151736 now with workaround for https://youtrack.jetbrains.com/issue/KT-62653
- Enable watchos and tvos download in importMaven
- Add support for watchos and tvos targets in AndroidXMultiplatformExtension
- Enable watchos and tvos in :annotation:annotation
- Enable linuxArm64, watchos, and tvos in :collection:collection
This work is required as we work towards setting up native stubs for
compose projects.
Test: ./gradlew collection:collection:publish
Bug: 349894318
Change-Id: Ic795af8486db48b31633799e06665717d08398db
M annotation/annotation/build.gradle
M buildSrc/private/src/main/kotlin/androidx/build/AndroidXMultiplatformExtension.kt
M buildSrc/public/src/main/kotlin/androidx/build/KmpPlatforms.kt
M collection/collection/build.gradle
M development/build_log_simplifier/messages.ignore
M development/importMaven/src/main/kotlin/androidx/build/importMaven/KmpConfig.kt
https://android-review.googlesource.com/3156121
Branch: androidx-main
commit 39cd1e9f7579513bde139c17f9c51f9012d56152
Author: Aurimas Liutikas <aurimas@google.com>
Date: Thu Jun 27 15:25:02 2024
Expand native target support for annotation and collection libraries
Reland
- Enable watchos and tvos download in importMaven
- Add support for watchos and tvos targets in AndroidXMultiplatformExtension
- Enable watchos and tvos in :annotation:annotation
- Enable linuxArm64, watchos, and tvos in :collection:collection
This work is required as we work towards setting up native stubs for
compose projects.
Test: ./gradlew collection:collection:publish
Bug: 349894318
Change-Id: Ic795af8486db48b31633799e06665717d08398db
M annotation/annotation/build.gradle
M buildSrc/private/src/main/kotlin/androidx/build/AndroidXMultiplatformExtension.kt
M buildSrc/public/src/main/kotlin/androidx/build/KmpPlatforms.kt
M collection/collection/build.gradle
M development/build_log_simplifier/messages.ignore
M development/importMaven/src/main/kotlin/androidx/build/importMaven/KmpConfig.kt
Description
Version used: 2.2.0-alpha01
Devices/Android versions reproduced on: Emulator x86_64 API level 27
I have been provided JAR with a POJO from a third party. The POJO is used extensively by the library code and it has package name such as "com.library.LibraryItem". I want to use this POJO with Room as an entity so I can save instances to a local DB.
I cannot annotate their library POJO, it is a JAR supplied to us that may change on a semi-regular basis.
I tried creating a subclass and using ignoredColumns but I still get errors because Room complains it cannot convert some of the fields I said to ignored. I created a TypeConverter to make the errors from Room go away but there are still more errors referring to the columns I am ignoring.
Here is my subclass:
/**
* I really want to save instances of LibraryItem in my database!
*/
@Entity(tableName = "items", ignoredColumns = "obj")
public class RoomItem extends LibraryItem {
// I have to put these fields here even though they aren't used to store any
// data just to make Room happy!
@PrimaryKey
@NonNull
private String id;
private String name;
private Long price;
public RoomItem(String id, String name, Long price) {
setId(id);
setName(name);
setPrice(price);
}
}
See the attached sample app that demonstrates the trouble. The output currently is:
> Task :app:compileDebugJavaWithJavac FAILED
/home/jacob/work/source/jwapp/app/src/main/java/com/library/LibraryItem.java:13: error: Cannot find getter for field.
private final JSONObject obj = new JSONObject();
^
/home/jacob/work/source/jwapp/app/src/main/java/com/jwapp/ItemDao.java:14: warning: com.jwapp.RoomItem has some fields [obj] which are not returned by the query. If they are not supposed to be read from the result, you can mark them with @Ignore annotation. You can suppress this warning by annotating the method with @SuppressWarnings(RoomWarnings.CURSOR_MISMATCH). Columns returned by the query: id, name, price. Fields in com.jwapp.RoomItem: id, name, price, obj.
List<RoomItem> getAll();
^
/home/jacob/work/source/jwapp/app/src/main/java/com/jwapp/ItemDao.java:17: warning: com.jwapp.RoomItem has some fields [obj] which are not returned by the query. If they are not supposed to be read from the result, you can mark them with @Ignore annotation. You can suppress this warning by annotating the method with @SuppressWarnings(RoomWarnings.CURSOR_MISMATCH). Columns returned by the query: id, name, price. Fields in com.jwapp.RoomItem: id, name, price, obj.
List<RoomItem> loadAllByIds(int[] ids);
^
/home/jacob/work/source/jwapp/app/src/main/java/com/jwapp/ItemDao.java:20: warning: com.jwapp.RoomItem has some fields [obj] which are not returned by the query. If they are not supposed to be read from the result, you can mark them with @Ignore annotation. You can suppress this warning by annotating the method with @SuppressWarnings(RoomWarnings.CURSOR_MISMATCH). Columns returned by the query: id, name, price. Fields in com.jwapp.RoomItem: id, name, price, obj.
RoomItem findByName(String name);
^
1 error
3 warnings