【问题标题】:What are these warnings in the pre-launch report in google play?google play 的发布前报告中的这些警告是什么?
【发布时间】:2019-06-15 09:04:34
【问题描述】:

我在 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)

【问题讨论】:

标签: android unity3d google-play


【解决方案1】:

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

Android guide about Non-SDK Restrictions 还提供了有关不同级别的灰名单和分发最佳做法的其他信息。请注意,您可能需要复制此链接并将其粘贴到浏览器中。

【讨论】:

  • 酷。 AS 中是否有 lint 检查以显示哪些代码行导致了此问题?
猜你喜欢
  • 2021-02-27
  • 2019-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-11
  • 1970-01-01
  • 2019-02-13
相关资源
最近更新 更多