google play 的预发布报告中的这些警告是什么?

Jon*_*osa 7 android unity-game-engine google-play

我在 google play 发布之前做了报告,我发出了 12 条警告。我的游戏是在 2017.1.1 单元制作的,我有 Android SDK 28。我想纠正这些导致这些广告的问题。google 向我抛出以下内容“Google 无法保证以下 API 可以在当前版本的 Android 上运行,因为它们在灰名单中。有些可能已经被其目标 SDK 限制了。”

StrictMode policy violation: android.os.strictmode.NonSdkApiUsedViolation: Ljava/nio/Buffer;->address:J
    at android.os.StrictMode.lambda$static$1(StrictMode.java:428)
    at android.os.-$$Lambda$StrictMode$lu9ekkHJ2HMz0jd3F8K8MnhenxQ.accept(Unknown Source:2)
    at java.lang.Class.getDeclaredField(Native Method)
    at akj.a(:com.google.android.gms.dynamite_adsdynamite@15090081@15.0.90 (100400-231259764):78)
    at akj.d(:com.google.android.gms.dynamite_adsdynamite@15090081@15.0.90 (100400-231259764):76)
    at akj.<clinit>(:com.google.android.gms.dynamite_adsdynamite@15090081@15.0.90 (100400-231259764):116)
    at akj.a(:com.google.android.gms.dynamite_adsdynamite@15090081@15.0.90 (100400-231259764):26)
    at ajd.<clinit>(:com.google.android.gms.dynamite_adsdynamite@15090081@15.0.90 (100400-231259764):2502)
    at ajd.a(:com.google.android.gms.dynamite_adsdynamite@15090081@15.0.90 (100400-231259764):20)
    at aio.a(:com.google.android.gms.dynamite_adsdynamite@15090081@15.0.90 (100400-231259764):26)
    at ajl.a(:com.google.android.gms.dynamite_adsdynamite@15090081@15.0.90 (100400-231259764):3)
    at ajl.a(:com.google.android.gms.dynamite_adsdynamite@15090081@15.0.90 (100400-231259764):8)
    at ahr.a(:com.google.android.gms.dynamite_adsdynamite@15090081@15.0.90 (100400-231259764):88)
    at ww.h_(:com.google.android.gms.dynamite_adsdynamite@15090081@15.0.90 (100400-231259764):23)
    at tl.a(:com.google.android.gms.dynamite_adsdynamite@15090081@15.0.90 (100400-231259764):18)
    at td.a(:com.google.android.gms.dynamite_adsdynamite@15090081@15.0.90 (100400-231259764):12)
    at tg.handleMessage(:com.google.android.gms.dynamite_adsdynamite@15090081@15.0.90 (100400-231259764):56)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at xs.a(:com.google.android.gms.dynamite_adsdynamite@15090081@15.0.90 (100400-231259764):5)
    at xs.dispatchMessage(:com.google.android.gms.dynamite_adsdynamite@15090081@15.0.90 (100400-231259764):4)
    at android.os.Looper.loop(Looper.java:193)
    at android.os.HandlerThread.run(HandlerThread.java:65)


----------


StrictMode policy violation: android.os.strictmode.NonSdkApiUsedViolation: Landroid/content/Context;->bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/Handler;Landroid/os/UserHandle;)Z
    at android.os.StrictMode.lambda$static$1(StrictMode.java:428)
    at android.os.-$$Lambda$StrictMode$lu9ekkHJ2HMz0jd3F8K8MnhenxQ.accept(Unknown Source:2)
    at java.lang.Class.getDeclaredMethodInternal(Native Method)
    at java.lang.Class.getMethod(Class.java:2064)
    at java.lang.Class.getDeclaredMethod(Class.java:2047)
    at aMq.a(PG:4)
    at aMK.a(PG:10)
    at aMr.a(PG:50)
    at cvB.<init>(PG:4)
    at cuV.run(PG:9)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.os.HandlerThread.run(HandlerThread.java:65)


----------


StrictMode policy violation: android.os.strictmode.NonSdkApiUsedViolation: Landroid/media/AudioSystem;->getPrimaryOutputFrameCount()I
    at android.os.StrictMode.lambda$static$1(StrictMode.java:428)
    at android.os.-$$Lambda$StrictMode$lu9ekkHJ2HMz0jd3F8K8MnhenxQ.accept(Unknown Source:2)
    at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
    at com.unity3d.player.UnityPlayer.c(Unknown Source:0)
    at com.unity3d.player.UnityPlayer$c$1.handleMessage(Unknown Source:151)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:193)
    at com.unity3d.player.UnityPlayer$c.run(Unknown Source:20)
[ 06-12 00:26:52.212 15139:15203 D/         ]
PlayerBase::PlayerBase()
[ 06-12 00:26:52.212 15139:15203 D/         ]
TrackPlayerBase::TrackPlayerBase()


----------


StrictMode policy violation: android.os.strictmode.NonSdkApiUsedViolation: Landroid/media/AudioSystem;->getPrimaryOutputSamplingRate()I
    at android.os.StrictMode.lambda$static$1(StrictMode.java:428)
    at android.os.-$$Lambda$StrictMode$lu9ekkHJ2HMz0jd3F8K8MnhenxQ.accept(Unknown Source:2)
    at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
    at com.unity3d.player.UnityPlayer.c(Unknown Source:0)
    at com.unity3d.player.UnityPlayer$c$1.handleMessage(Unknown Source:151)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:193)
    at com.unity3d.player.UnityPlayer$c.run(Unknown Source:20)


----------


StrictMode policy violation: android.os.strictmode.NonSdkApiUsedViolation: Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionAction(III)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
    at android.os.StrictMode.lambda$static$1(StrictMode.java:428)
    at android.os.-$$Lambda$StrictMode$lu9ekkHJ2HMz0jd3F8K8MnhenxQ.accept(Unknown Source:2)
    at java.lang.Class.getDeclaredMethodInternal(Native Method)
    at java.lang.Class.getPublicMethodRecursive(Class.java:2075)
    at java.lang.Class.getMethod(Class.java:2063)
    at java.lang.Class.getMethod(Class.java:1690)
    at cyw.a(PG:9)
    at cyE.a(PG:12)
    at org.chromium.content.browser.selection.SmartSelectionClient.<init>(PG:5)
    at czl.a(Unknown Source:7)
    at org.chromium.android_webview.AwContents.e(PG:243)
    at org.chromium.android_webview.AwContents.d(PG:210)
    at org.chromium.android_webview.AwContents.<init>(PG:81)
    at vE.run(PG:15)
    at aKc.a(PG:13)
    at aKd.run(Unknown Source:2)
    at org.chromium.base.task.PostTask.b(PG:13)
    at aKc.a(PG:7)
    at com.android.webview.chromium.WebViewChromiumFactoryProvider.b(PG:6)
    at com.android.webview.chromium.WebViewChromium.init(PG:107)
    at android.webkit.WebView.<init>(WebView.java:422)
    at android.webkit.WebView.<init>(WebView.java:348)
    at android.webkit.WebView.<init>(WebView.java:331)
    at android.webkit.WebView.<init>(WebView.java:318)
    at android.webkit.WebView.<init>(WebView.java:308)
    at a.a.a.a.a.e.a.b(SourceFile:1)
    at a.a.a.a.a.e.a.a(SourceFile:1)
    at a.a.a.a.a.h.c.b(SourceFile:3)
    at a.a.a.a.a.h.c.a(SourceFile:5)
    at a.a.a.a.a.h.j.a(SourceFile:12)
    at com.tappx.sdk.android.TappxInterstitial.loadAd(SourceFile:2)
    at com.tappx.unity.interstitialTappx$1.run(interstitialTappx.java:39)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6718)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Run Code Online (Sandbox Code Playgroud)

Bon*_*ond 10

这些是指在您的应用程序中使用隐藏的系统级 API,很可能包含在第三方代码中,并且通常需要某些功能。对于 Android P(28),有一个隐藏 API的浅灰名单,目前可以使用,但可能会在以后的版本中弃用。还有一个深灰名单和一个黑名单。在您的堆栈跟踪上方,您应该有一行写着API LAndroid/...您应该能够在没有“API”的情况下搜索该字符串,并希望能在上面链接的浅灰名单中找到它。如果是这样,你现在应该没问题。如果不是,则该 API 可能会在 Android Q 中被弃用/删除,您可能需要先修复它才能升级以支持 SDK 29。请注意,如果灰名单 API 有合法用例,Google 应该创建一个新的 API 来满足这些需求。更多关于非 SDK 接口的信息可以在这个 Stack Overflow Answer 中找到

这份关于非 SDK 限制的 Android 指南中还提供了有关不同级别的灰名单和分发最佳实践的其他信息。请注意,您可能需要复制此链接并将其粘贴到浏览器中。

  • 凉爽的。AS 中是否有 lint 检查来显示哪些代码行造成了此问题? (4认同)