Android Google Play Store中不支持的API警告

Android Google Play Store中不支持的API警告,android,unity3d,Android,Unity3d,我在Google Play发布前的报告中收到以下警告 我不知道如何纠正这些错误。欢迎提供任何帮助或建议 我这里有很多问题 Android兼容性 我们检测到您的应用程序正在使用不受支持的API。测试可能没有找到所有不受支持的API。了解更多 无支撑 识别出12条警告 以下API是灰色列表,谷歌不能保证它们能在现有版本的Android上运行。对于您的目标SDK,有些可能已经受到限制 API Ljava/lang/invoke/MethodHandles$Lookup;->(Ljava/lang/Cl

我在Google Play发布前的报告中收到以下警告

我不知道如何纠正这些错误。欢迎提供任何帮助或建议 我这里有很多问题
Android兼容性
我们检测到您的应用程序正在使用不受支持的API。测试可能没有找到所有不受支持的API。了解更多
无支撑
识别出12条警告
以下API是灰色列表,谷歌不能保证它们能在现有版本的Android上运行。对于您的目标SDK,有些可能已经受到限制
API Ljava/lang/invoke/MethodHandles$Lookup;->(Ljava/lang/Class;I)V
已查明11起事件。仅显示唯一的堆栈跟踪。
API Landroid/内容/上下文;->bindServiceAsUser(Landroid/content/Intent;Landroid/content/ServiceConnection;ILandroid/os/Handler;Landroid/os/UserHandle;)Z
发现1起事故
API Landroid/媒体/音频系统;->getPrimaryOutputFrameCount()I
发现1起事故
API Landroid/媒体/音频系统;->getPrimaryOutputSamplingRate()I
发现1起事故
API Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->选择操作(III)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
发现1起事故
API Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionAction(IIILandroid/view/textclassifier/TextClassification;)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
发现1起事故
API Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionModified(II)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
发现1起事故
API Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionModified(IILandroid/view/textclassifier/TextClassification;)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
发现1起事故
API Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionModified(IILandroid/view/textclassifier/TextSelection;)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
发现1起事故
API Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->选择启动(I)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;
发现1起事故
API Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->(Landroid/content/Context;I)V
发现1起事故
API Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->logEvent(Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;)V

1识别出的事件
这些警告指的是使用受限制的非SDK接口。

这些呼叫可能导致错误行为或应用程序崩溃。建议避免使用它们。所有用法都属于黑名单、灰名单或白名单。如果你无法摆脱这些用法,请检查与列表的关联。只有列入黑名单的电话才会导致崩溃。另外,提醒一下,Android Q(targetSDK=29)已经更新了黑名单

我也有类似的问题,我通过在MainActivity的onCreate()中添加以下代码获得了非DKapiusedViolation日志,它为我提供了导致它的API调用的精确位置

if (BuildConfig.BUILD_TYPE.contentEquals("debug")) {
    StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy
        .Builder()
        .detectAll()             // Checks for all violations
        .penaltyLog()            // Output violations via logging
        .build()
    );

    StrictMode.setVmPolicy(new StrictMode.VmPolicy
        .Builder()
        .detectNonSdkApiUsage()  // Detect private API usage
        .penaltyLog()            // Output violations via logging
        .build()
    );
}
运行应用程序时,如果任何代码的执行触发了
StrictMode
冲突,您应该在日志输出中看到一个堆栈跟踪,指示是什么触发了它:

D/StrictMode: StrictMode policy violation; ~duration=28 ms: android.os.strictmode.DiskReadViolation
  at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1596)
  ...
手动测试应用程序后,在日志输出中搜索
StrictMode
将有助于轻松找到这些模式

还提供了一些额外的指导:

如果您发现有问题的违规行为,有多种工具可以帮助您解决这些问题:线程、处理程序、异步任务、IntentService等,但不要觉得必须修复StrictMode发现的所有问题。特别是,在正常的活动生命周期中,经常需要进行许多磁盘访问。使用StrictMode查找您偶然做的事情。不过,UI线程上的网络请求几乎总是一个问题


如果您使用的是Xamarin,我相信与Kailash的答案相当的是:

#if DEBUG
    StrictMode.SetThreadPolicy(
        new StrictMode.ThreadPolicy.Builder()
            .DetectAll()
            .PenaltyLog()
            .Build());

    StrictMode.SetVmPolicy(
       new StrictMode.VmPolicy.Builder()
            .DetectNonSdkApiUsage()
            .PenaltyLog()
            .Build());
#endif // DEBUG

我也有同样的问题,也不知道如何在我的代码中找到这些不受支持的调用。我已经在我的
app/src/main/java/*
目录中搜索了错误中的各种文本片段,但在我的源代码中什么也找不到。我有同样的问题,但所有这些API调用都是作为apk的依赖项添加到库中的。奇怪的是,他们都来自谷歌-谷歌游戏和FielBase:我有同样的问题,我的应用程序是99% C++,所以所有的警告都来自于我通过Gealle的谷歌API的支持。我在谷歌开发者的页面上找到了这个确切的信息,但这并不能真正帮助OP,也不能帮助我和其他像我们这样的人,他们正在努力寻找这些电话是在哪里打的。我们知道不应该进行调用,但如果我们在代码中找不到调用,我们甚至无法开始解决如何更正它们。关于信息,我使用的是Android Studio,在构建或调试过程中,我没有收到长时间的警告。我只在开发者控制台发布前的报告中看到了这些错误。我的两个应用中有23个这样的问题,所有这些问题都来自谷歌的androidx库,比如ViewUtils等等。谈到铁艺,我有一些这样的警告。一个是
Landroid/widget/PopupWindow;->setTouchModal
,这看起来像是一个警告,我在Alpha发布前的报告中也有类似的警告。我想知道这样的警告,一旦推广到生产环境中,是否会导致您的应用被拒绝?我不明白,发布前结果中的APK 0 e