找不到符号androidx.annotation.NonNull

ix0qys7i  于 2023-06-27  发布在  Android
关注(0)|答案(1)|浏览(525)

在我的Android应用程序中

  1. dependencies {
  2. ...
  3. implementation "com.android.billingclient:billing:6.0.0"
  4. }

build.gradle

  1. import androidx.annotation.NonNull;

在我的Java代码中。
如果我将计费版本更改为4.0.0,如下所示:

  1. dependencies {
  2. ...
  3. implementation "com.android.billingclient:billing:4.0.0"
  4. }

我的Java代码停止编译,并得到以下错误:

  1. error: cannot find symbol
  2. import androidx.annotation.NonNull;
  3. ^
  4. symbol: class NonNull
  5. location: package androidx.annotation

如何解决这个问题?
我试着加上

  1. implementation "androidx.annotation:annotation:1.6.0"

build.gradle,但它没有帮助。
在我的gradle.properties中,我有:

  1. android.useAndroidX=true
  2. android.enableJetifier=true

编辑1

我得到“java.lang.NullPointerException:尝试使用依赖于billing v6的新版本对空对象引用“”调用虚拟方法“boolean com.android.settingslib.media.MediaDevice.isConnected()”:

  1. Exception Process: com.android.settings, PID: 20342
  2. java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.android.settingslib.media.MediaDevice.isConnected()' on a null object reference
  3. at com.android.settingslib.media.MediaDevice.compareTo (MediaDevice.java:325)
  4. at com.android.settingslib.media.MediaDevice.compareTo (MediaDevice.java:56)
  5. at java.util.Comparators$NaturalOrderComparator.compare (Comparators.java:52)
  6. at java.util.Comparators$NaturalOrderComparator.compare (Comparators.java:47)
  7. at java.util.TimSort.countRunAndMakeAscending (TimSort.java:355)
  8. at java.util.TimSort.sort (TimSort.java:220)
  9. at java.util.Arrays.sort (Arrays.java:1492)
  10. at java.util.ArrayList.sort (ArrayList.java:1470)
  11. at java.util.Collections.sort (Collections.java:206)
  12. at com.android.settingslib.media.LocalMediaManager$MediaDeviceCallback.onDeviceListAdded (LocalMediaManager.java:484)
  13. at com.android.settingslib.media.MediaManager.dispatchDeviceListAdded (MediaManager.java:91)
  14. at com.android.settingslib.media.InfoMediaManager.refreshDevices (InfoMediaManager.java:407)
  15. at com.android.settingslib.media.InfoMediaManager.access$000 (InfoMediaManager.java:61)
  16. at com.android.settingslib.media.InfoMediaManager$RouterManagerCallback.onRoutesAdded (InfoMediaManager.java:514)
  17. at android.media.MediaRouter2Manager.lambda$notifyRoutesAdded$0 (MediaRouter2Manager.java:671)
  18. at android.media.MediaRouter2Manager$$ExternalSyntheticLambda6.run
  19. at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
  20. at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
  21. at java.lang.Thread.run (Thread.java:920)
0s0u357o

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或更高版本。
请让我知道如果你需要更多的支持,快乐编码!

相关问题