当前位置: 首页 > 知识库问答 >
问题:

访问非SDK接口上的隐藏方法logcat警告和限制

戚祺
2023-03-14
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); 

           ................       

    MobileAds.initialize(this,  "ca-app-pub-3940256099942544~3347511713");

           ................

    adView = new AdView(this);

    adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
    adView.setAdSize(AdSize.BANNER);
    adView.setBackgroundColor(Color.TRANSPARENT);
    adView.setVisibility(View.GONE);            
    adView.loadAd(adBuilder());

           ................

    interstitial = new InterstitialAd(GLGame.this);            
    interstitial.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
    interstitial.loadAd(adBuilder());        

    mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
    mRewardedVideoAd.setRewardedVideoAdListener(this);        
    loadRewardedVideoAd();        
}

AdRequest adBuilder() {
    return new AdRequest.Builder().build();
}
public void loadRewardedVideoAd() {        
    mRewardedVideoAd.loadAd("ca-app-pub-3940256099942544/5224354917", new AdRequest.Builder().build());        
}
MobileAds.initialize(this,  "ca-app-pub-3940256099942544~3347511713");
adView.loadAd(adBuilder());
interstitial.loadAd(adBuilder());
W: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker;-><init>(Landroid/content/Context;I)V (light greylist, reflection)
W: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker;->logEvent(Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;)V (light greylist, reflection)
W: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionStarted(I)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent; (light greylist, reflection)
W: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionModified(II)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent; (light greylist, reflection)
W: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionModified(IILandroid/view/textclassifier/TextClassification;)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent; (light greylist, reflection)
W: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionModified(IILandroid/view/textclassifier/TextSelection;)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent; (light greylist, reflection)
W: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionAction(III)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent; (light greylist, reflection)
W: Accessing hidden method Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent;->selectionAction(IIILandroid/view/textclassifier/TextClassification;)Landroid/view/textclassifier/logging/SmartSelectionEventTracker$SelectionEvent; (light greylist, reflection)
//MobileAds.initialize(this,  "ca-app-pub-3940256099942544~3347511713");
//adView.loadAd(adBuilder());
//interstitial.loadAd(adBuilder());
W: Accessing hidden method Landroid/media/AudioTrack;->getLatency()I (light greylist, reflection)
//loadRewardedVideoAd();
MobileAds.initialize(this,  "ca-app-pub-3940256099942544~3347511713");
adView.loadAd(adBuilder());
interstitial.loadAd(adBuilder());
loadRewardedVideoAd();
  1. 这些是模拟器的问题?
  2. 我是否可能使用非SDK接口(请参见访问隐藏方法、轻灰色列表、反射),从而在平台的未来版本中破坏我的应用程序
  3. 如何解决此问题?

共有1个答案

洪承天
2023-03-14

Greylisted非SDK接口意味着在Android9中继续运行的方法和字段,但谷歌不保证在该平台的未来版本中访问这些方法和字段。如果您无法实现greylisted API的替代策略,您可能会提交一个bug以请求重新考虑限制。

 类似资料:
  • 问题内容: 考虑以下情况, 在上面的例子中我得到以下输出这是 相当 期待。 我一直在阅读有关默认方法的信息, 尤其是 关于扩展包含默认方法的接口的信息 2 第二子弹:重新声明的默认方法,这使得它的抽象。 在上面的示例中,我有两个接口的默认方法具有相同的名称,并且当我实现这两个接口时,我只能实现对的引用。 我对此几乎没有疑问, 我怎样才能 到达 的方法 和 如果我不能比,为什么? 没有这种行为从本质

  • 我已经在IntelliJ中安装了SonarQube插件,它工作得很好--这是一个巨大的帮助。但是我怎么关闭警告呢?自从我的团队刚开始使用SonarQube以来,我们有成千上万的问题,每一个问题都出现在我的IDE中,这让我分心:( 我不想每次运行分析时卸载插件并重新安装--但我确实希望警告按需消失,这样我就可以集中精力完成一些工作。我可没时间整天解决声纳问题。

  • 我只是尝试使用Java 9运行我的服务器,并得到下一个警告: 我希望隐藏此警告,而不在启动期间向JVM选项添加<code>--非法访问=拒绝</code>。类似于: 有什么办法吗? 所有建议使用JVM选项的相关答案,我想从代码中关闭它。这可能吗? 为了澄清-我的问题是关于从代码中转换此警告,而不是通过类似问题中所述的JVM参数/标志。

  • 问题内容: 我只是尝试使用Java 9运行服务器,并收到下一个警告: 我想隐藏此警告而不在启动过程中添加到JVM选项。就像是: 有什么办法吗? 建议使用JVM选项的所有相关答案,我想从代码中关闭它。那可能吗? 要澄清-我的问题是关于从代码而不是通过类似问题中所述的JVM参数/标志来启用此警告。 问题答案: 有几种方法可以禁用非法访问警告,尽管我不建议您这样做。 1.简单的方法 由于警告已打印到默认

  • 我在Eclipse(版本2019-06)中运行一个项目,它在我的java计算机上运行得很好--“OpenJDK 1.8.0_222” 然而,当我尝试tor在Eclipse(版本2021-3)上的另一台计算机上用java运行该项目时--“OpenJDK版本”1.8.0_292“,它不起作用! 我得到以下错误: 警告:发生非法反射访问操作警告:com.google.gson.internal.bind

  • 如果能帮助我重写一些使用反射的Java代码,以便在Java10上删除编译器中的警告,我将不胜感激: 这就是所讨论的Java方法: 这是GitHub上的问题代码:https://github.com/librepdf/openpdf/blob/master/openpdf/src/main/java/com/lowagie/text/pdf/mappedrandomaccessfile.java#l