【问题标题】:New Google Play Services Admob permissions error新的 Google Play 服务 Admob 权限错误
【发布时间】:2015-03-24 07:23:53
【问题描述】:

我正在测试通过 Google Play 服务实现的新 google Admob。

这一切都是通过代码完成的,根本没有 xml,除了 android manifest

private Activity   m_activity;
private AdView     m_adview;
private AdRequest  m_adrequest;

public void init_admob() {
    Log.d("--test--admob--", "Admob Init started");

    m_adview = new AdView(m_activity);
    m_adview.setAdUnitId("ca-app-pub-9986005637768452/7524337670");
    m_adview.setAdSize(AdSize.SMART_BANNER);

    Log.d("--test--admob--", "Admob Init finished");

}

public void show_banner() {

    Log.d("--test--admob--", "Admob building add request started");
    m_adrequest = new AdRequest.Builder()
    .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
    .addTestDevice("TEST DEVICE ID")
    .build();
    Log.d("--test--admob--", "Admob building add request finished ");


    Log.d("--test--admob--", "Admob attempting to show ads");
    m_adview.loadAd(m_adrequest);
    Log.d("--test--admob--", "Admob finished building ads");

}

调用 show_banner 后,我会收到日志消息,直到

Log.d("--test--admob--", "Admob attempting to show ads");

然后应用程序就会挂起并显示以下错误代码。

Could not find method android.content.pm.PackageManager.getPackageInstaller, referenced from method com.google.android.gms.common.ew.c
W/ActivityManager( 2282): Permission Denial: opening provider com.google.android.gsf.gservices.GservicesProvider from ProcessRecord{42624eb8 1701:com.test.admob/u0a398} (pid=1701, uid=10398) requires com.google.android.providers.gsf.permission.READ_GSERVICES or com.google.android.providers.gsf.permission.WRITE_GSERVICES
W/ActivityManager( 2282): Permission Denial: opening provider com.google.android.gsf.gservices.GservicesProvider from ProcessRecord{42624eb8 1701:com.test.admob/u0a398} (pid=1701, uid=10398) requires com.google.android.providers.gsf.permission.READ_GSERVICES or com.google.android.providers.gsf.permission.WRITE_GSERVICES
W/ActivityManager( 2282): Permission Denial: opening provider com.google.android.gsf.gservices.GservicesProvider from ProcessRecord{42624eb8 1701:com.test.admob/u0a398} (pid=1701, uid=10398) requires com.google.android.providers.gsf.permission.READ_GSERVICES or com.google.android.providers.gsf.permission.WRITE_GSERVICES
W/ActivityManager( 2282): Permission Denial: opening provider com.google.android.gsf.gservices.GservicesProvider from ProcessRecord{42624eb8 1701:com.test.admob/u0a398} (pid=1701, uid=10398) requires com.google.android.providers.gsf.permission.READ_GSERVICES or com.google.android.providers.gsf.permission.WRITE_GSERVICES
V/WebViewChromiumFactoryProvider( 1701): Binding Chromium to main looper Looper (main, tid 1) {422237d8}

安卓清单

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<activity android:name="com.google.android.gms.ads.AdActivity" 
    android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />

<meta-data android:name="com.google.android.gms.version" 
    android:value="@integer/google_play_services_version"/>

[编辑] 我忘了提到我也尝试过添加,但也没有用。

【问题讨论】:

  • 什么版本的 GPS?您在哪个版本的 Android 上部署? Android Manifest 中的 minSDK 和 targetSDK 是什么?
  • min sdk 10 测试设备 Galaxy Note 4 4​​4 最新更新。
  • 当设备上的服务 apk 过时或根本不存在(例如 Kindle)时,似乎是 7.0 客户端 SDK 中的错误。已为此提交了一个内部错误。

标签: android admob google-play-services


【解决方案1】:

这似乎是 Google Play 服务 4.3 版中的一个错误。 见https://groups.google.com/forum/#!topic/google-admob-ads-sdk/sePctoDJbRg%5B1-25%5D

【讨论】:

    【解决方案2】:

    将以下权限添加到您的 menifest.xml 中

    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    

    【讨论】:

    • 我在 READ 和 WRITE_GSERVICES 之前尝试过这个,但是这不起作用应用仍然挂起。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多