#android #admob
#Android #admob
Вопрос:
Я только начинаю добавлять admob в свое приложение для Android и начал с использования примера banner essentials, который доступен на веб-сайте admob. Вот пример кода.
public class BannerEssentials extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Lookup R.layout.main
LinearLayout layout = (LinearLayout)findViewById(R.id.linearLayout);
// Create the adView
// Please replace MY_BANNER_UNIT_ID with your AdMob Publisher ID
AdView adView = new AdView(this, AdSize.BANNER, "a14da528179106a");
// Add the adView to it
layout.addView(adView);
// Initiate a generic request to load it with an ad
AdRequest request = new AdRequest();
request.setTesting(true);
adView.loadAd(request);
}
}
Я настроил свою учетную запись в admob, и, похоже, все на месте, когда я заглядываю в свой logCat, я вижу следующее сообщение об ошибке «отказано в подключении» для admob. Кто-нибудь еще сталкивался с этой проблемой, и если да, то как вы ее решили? Заранее спасибо за вашу помощь.
04-13 11:39:33.410: WARN/Ads(5662): java.net.ConnectException: r.admob.com/127.0.0.1:80 - Connection refused
04-13 11:39:33.410: WARN/Ads(5662): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:254)
04-13 11:39:33.410: WARN/Ads(5662): at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:533)
04-13 11:39:33.410: WARN/Ads(5662): at java.net.Socket.connect(Socket.java:1055)
04-13 11:39:33.410: WARN/Ads(5662): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:62)
04-13 11:39:33.410: WARN/Ads(5662): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:88)
04-13 11:39:33.410: WARN/Ads(5662): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHTTPConnection(HttpURLConnectionImpl.java:927)
04-13 11:39:33.410: WARN/Ads(5662): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:909)
04-13 11:39:33.410: WARN/Ads(5662): at b.a(Unknown Source)
04-13 11:39:33.410: WARN/Ads(5662): at b.doInBackground(Unknown Source)
04-13 11:39:33.410: WARN/Ads(5662): at android.os.AsyncTask$2.call(AsyncTask.java:185)
04-13 11:39:33.410: WARN/Ads(5662): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
04-13 11:39:33.410: WARN/Ads(5662): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
04-13 11:39:33.410: WARN/Ads(5662): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
04-13 11:39:33.410: WARN/Ads(5662): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
04-13 11:39:33.410: WARN/Ads(5662): at java.lang.Thread.run(Thread.java:1096)
Мой файл манифеста ниже.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.ads.example"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".BannerEssentials"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation"/>
</application>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-sdk android:minSdkVersion="3" />
</manifest>
Ответ №1:
Как настроен ваш манифест? Вы добавили разрешение на доступ в Интернет? Вы установили соответствующие параметры метаданных?
Комментарии:
1. Я обновил, чтобы включить мой manifest.xml Итак, я тестировал на своем телефоне DroidX и решил попробовать эмулятор. Код отлично работает в эмуляторе, но не на телефоне. Существует ли конфликт версий, моя версия Android 2.2.1.
2. Обновление: я нашел источник своей проблемы. У меня есть рутированный телефон, с которого у меня есть возможность отключить показ рекламы. (Я знаю, о чем я думал?) В любом случае, как только я отключил эту функцию, реклама в моем приложении работает просто отлично. Надеюсь, это поможет.
3. @Byron не могли бы вы, пожалуйста, опубликовать свое решение в качестве ответа, чтобы в будущем это было легко и полезно для всех, спасибо!
Ответ №2:
Обновление: я нашел источник своей проблемы. У меня есть рутированный телефон, с которого у меня есть возможность отключить показ рекламы. (Я знаю, о чем я думал?) В любом случае, как только я отключил эту функцию, реклама в моем приложении работает просто отлично. Надеюсь, это поможет кому-то еще.
Ответ №3:
Вы не добавили разрешение (Интернет, доступ к Интернету) и метаданные.
Ознакомьтесь с руководством по использованию ads go:https://developers.google.com/admob/android/quick-start
Если у вас возникли какие-либо проблемы с этим руководством, посмотрите следующее видео: следующее видео