将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拆箱会导致编译错误
我按照链接的方式,修改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<Integer, Boolean>" />
<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
最近遇到了一个奇怪的崩溃,它发生在接收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) 出现了与 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 相关的问题: …