小编Iva*_*van的帖子

数据绑定 - safeUnbox警告

将AS gradle版本升级到2.3.0后,数据绑定会遇到警告:

警告:selectMap [index]是一个盒装字段但需要取消装箱才能执行selectMap [index]?@android:颜色/白色:@android:颜色/透明.这可能会导致NPE,因此数据绑定将安全地取消它.您可以更改表达式并使用safeUnbox()显式地包装selectMap [index]以防止出现警告

selectMap是一个ObservableMap,然后我搜索这个警告,但只进行了一些讨论而没有修复它

Android Studio 2.3.0-alpha1:Databinding + int拆箱会导致编译错误

数据绑定 - API 15-18上的数据对象为空

我按照链接的方式,修改selectMap[index]safeUnbox(selectMap[index])但语法错误.

所以任何人都知道如何修复此警告?


编辑:这是xml文件代码

<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)

<data class="SupportCountryViewHolderBinding">

    <variable
        name="viewModel"
        type="com.goodarc.care_about.activity.account.support_country.SupportCountryHolderViewModel" />

    <variable
        name="dataSource"
        type="com.goodarc.care_about.module.assets_file.SupportCountry" />

    <variable
        name="selectMap"
        type="android.databinding.ObservableMap&lt;Integer, Boolean&gt;" />

    <variable
        name="index"
        type="int" />
</data>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@{selectMap[index] ? @android:color/white : @android:color/transparent}"
    android:onClick="@{(v) -> viewModel.onItemSelectListener(selectMap, index)}"
    android:orientation="vertical"
    android:padding="20dp">

    <TextView
        style="@style/TitleLabel2"
        android:layout_gravity="center_vertical|start"
        android:text="@{dataSource.display}"
        android:textColor="@{selectMap[index] ? @android:color/black : @android:color/white}"
        tools:text="Taiwan (+886)" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

构建成功,但警告出来(我在上面).

data-binding android warnings android-gradle-plugin android-databinding

48
推荐指数
5
解决办法
3万
查看次数

Firebase Cloud Message崩溃在后台

最近遇到了一个奇怪的崩溃,它发生在接收Firebase云消息时,不确定崩溃是由app是否在后台运行而由Firebase控制台发送通知引起的,这是日志

Fatal Exception: java.lang.NullPointerException: Attempt to read from field 'int com.android.okhttp.okio.Segment.limit' on a null object reference
   at com.android.okhttp.okio.Buffer.write + 1182(Buffer.java:1182)
   at com.android.okhttp.okio.Buffer.read + 1221(Buffer.java:1221)
   at com.android.okhttp.okio.RealBufferedSource.read + 55(RealBufferedSource.java:55)
   at com.android.okhttp.internal.http.HttpConnection$FixedLengthSource.read + 418(HttpConnection.java:418)
   at com.android.okhttp.internal.Util.skipAll + 176(Util.java:176)
   at com.android.okhttp.internal.Util.discard + 158(Util.java:158)
   at com.android.okhttp.internal.http.HttpConnection$FixedLengthSource.close + 435(HttpConnection.java:435)
   at com.android.okhttp.okio.RealBufferedSource.close + 374(RealBufferedSource.java:374)
   at com.android.okhttp.okio.RealBufferedSource$1.close + 362(RealBufferedSource.java:362)
   at com.google.android.gms.internal.firebase_messaging.zzk.zza + 4(com.google.firebase:firebase-messaging@@19.0.1:4)
   at com.google.firebase.messaging.zzi.close + 37(com.google.firebase:firebase-messaging@@19.0.1:37)
   at com.google.firebase.messaging.zzb.zza + 51(com.google.firebase:firebase-messaging@@19.0.1:51)
   at com.google.firebase.messaging.FirebaseMessagingService.zzc + 59(com.google.firebase:firebase-messaging@@19.0.1:59)
   at com.google.firebase.messaging.zzg.run + 2(com.google.firebase:firebase-messaging@@19.0.1:2)
   at java.util.concurrent.ThreadPoolExecutor.runWorker + 1113(ThreadPoolExecutor.java:1113)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run + 588(ThreadPoolExecutor.java:588) …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-cloud-messaging

9
推荐指数
1
解决办法
407
查看次数

Android Room 增量警告

出现了与 Room 相关的警告,这让我很困扰......

> Task :api:kaptDevDebugKotlin
warning: Current JDK version 1.8.0_221-b11 has a bug (https://bugs.openjdk.java.net/browse/JDK-8007720) that prevents Room from being incremental. Consider using JDK 11+ or the embedded JDK shipped with Android Studio 3.5+.
[WARN] Incremental annotation processing requested, but support is disabled because the following processors are not incremental: androidx.room.RoomProcessor (DYNAMIC).
Run Code Online (Sandbox Code Playgroud)

这是 gradle 中的 kapt

kapt {
    arguments {
        arg("room.schemaLocation", "$projectDir/schemas".toString())
        arg("room.incremental", "true")
        arg("room.expandProjection", "true")
    }
}
Run Code Online (Sandbox Code Playgroud)

gradle 中的依赖

// Room
implementation "androidx.room:room-runtime:2.2.4"
kapt "androidx.room:room-compiler:2.2.4"
Run Code Online (Sandbox Code Playgroud)

我知道有一些与 Room Processor 相关的问题: …

android android-room

5
推荐指数
0
解决办法
1670
查看次数