在我的Android应用程序中
dependencies {
...
implementation "com.android.billingclient:billing:6.0.0"
}
在build.gradle
和
import androidx.annotation.NonNull;
在我的Java代码中。
如果我将计费版本更改为4.0.0,如下所示:
dependencies {
...
implementation "com.android.billingclient:billing:4.0.0"
}
我的Java代码停止编译,并得到以下错误:
error: cannot find symbol
import androidx.annotation.NonNull;
^
symbol: class NonNull
location: package androidx.annotation
如何解决这个问题?
我试着加上
implementation "androidx.annotation:annotation:1.6.0"
build.gradle
,但它没有帮助。
在我的gradle.properties
中,我有:
android.useAndroidX=true
android.enableJetifier=true
编辑1
我得到“java.lang.NullPointerException:尝试使用依赖于billing v6的新版本对空对象引用“”调用虚拟方法“boolean com.android.settingslib.media.MediaDevice.isConnected()”:
Exception Process: com.android.settings, PID: 20342
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.android.settingslib.media.MediaDevice.isConnected()' on a null object reference
at com.android.settingslib.media.MediaDevice.compareTo (MediaDevice.java:325)
at com.android.settingslib.media.MediaDevice.compareTo (MediaDevice.java:56)
at java.util.Comparators$NaturalOrderComparator.compare (Comparators.java:52)
at java.util.Comparators$NaturalOrderComparator.compare (Comparators.java:47)
at java.util.TimSort.countRunAndMakeAscending (TimSort.java:355)
at java.util.TimSort.sort (TimSort.java:220)
at java.util.Arrays.sort (Arrays.java:1492)
at java.util.ArrayList.sort (ArrayList.java:1470)
at java.util.Collections.sort (Collections.java:206)
at com.android.settingslib.media.LocalMediaManager$MediaDeviceCallback.onDeviceListAdded (LocalMediaManager.java:484)
at com.android.settingslib.media.MediaManager.dispatchDeviceListAdded (MediaManager.java:91)
at com.android.settingslib.media.InfoMediaManager.refreshDevices (InfoMediaManager.java:407)
at com.android.settingslib.media.InfoMediaManager.access$000 (InfoMediaManager.java:61)
at com.android.settingslib.media.InfoMediaManager$RouterManagerCallback.onRoutesAdded (InfoMediaManager.java:514)
at android.media.MediaRouter2Manager.lambda$notifyRoutesAdded$0 (MediaRouter2Manager.java:671)
at android.media.MediaRouter2Manager$$ExternalSyntheticLambda6.run
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
at java.lang.Thread.run (Thread.java:920)
1条答案
按热度按时间0s0u357o1#
这个错误直截了当。
java.lang.NullPointerException:尝试在空对象引用上调用虚方法'boolean com.android.settingslib.media.MediaDevice.isConnected()'****
这意味着您正在尝试检查空对象引用中的布尔值。没有代码导致的错误,我不能帮助你更多。
查看the migration guide以检查项目中的所有设置是否正确。
我在询问是否真的有必要进行版本降级之前进行了评论,因为迁移指南在顶部有一个提醒:
从2023年8月2日开始,所有新应用程序必须使用Billing Library版本5或更高版本。到2023年11月1日,现有应用程序的所有更新都必须使用Billing Library版本5或更高版本。
请让我知道如果你需要更多的支持,快乐编码!