Google AdMob AdView始终为空白

时间:2019-05-15 12:17:26

标签: java android admob

我试图让AdMob广告在Android应用中正常工作,但是无论我尝试什么,无论我要展示的是测试广告还是真实广告,无论是否正在展示,AdView始终总是空白在虚拟设备或物理设备上显示。

我现在创建了一个空白项目,并尝试直接复制Google Tutorial,但是没有运气。我仍然在教程中使用示例ID,但是使用自己的ID时结果仍然相同。

我在我的项目级别build.gradle中添加了以下内容:

void accept(T t) throws Exception;

我在应用程序级别build.gradle上遇到错误,但是我几乎找不到有关导致它的原因或如何解决它的信息。关于我发现的唯一信息,是一行告诉Android Studio停止报告错误。我的应用程序级别build.gradle中包含以下内容:

package CrossBrowserTesting;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class ChromeTesting {
    public static void main(String[] args) {
        WebDriver driver;
        System.setProperty("webdriver.chrome.driver","\\selenium webdrivers\\chromedriver.exe");
        driver = new ChromeDriver();
        driver.get("https://www.google.com");
        driver.quit();
    }
}

错误在第二个“实现”行上发生,并且是:

allprojects {
repositories {
    google()
    jcenter()

    }
}

除此之外,代码中似乎没有其他错误。

我已将AdView添加到activity_main.xml中,如下所示:

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.google.android.gms:play-services-ads:17.2.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

我也已切换为使用RelativeLayout,因为这是本教程中使用的。

然后我正在使用以下Java(希望)请求广告。

All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 28.0.0, 26.1.0. Examples include com.android.support:animated-vector-drawable:28.0.0 and com.android.support:customtabs:26.1.0

当我在虚拟设备上运行该应用程序时,该应用程序运行正常,但AdView不可见。我在日志中发现一些错误,但没有一个可以找到有关在线的很多有用信息:

    <com.google.android.gms.ads.AdView
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:id="@+id/adView"
        android:layout_width="1000px"
        android:layout_height="500px"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        ads:adSize="BANNER"
        ads:adUnitId="ca-app-pub-3940256099942544~3347511713">
    </com.google.android.gms.ads.AdView>

我也得到:

    package com.jakecharman.myapplication;

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import com.google.android.gms.ads.MobileAds;
    import com.google.android.gms.ads.AdRequest;
    import com.google.android.gms.ads.AdView;

    public class MainActivity extends AppCompatActivity {

        private AdView mAdView;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            // Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713
            MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713");
            mAdView = findViewById(R.id.adView);
            AdRequest adRequest = new 
            mAdView.loadAd(adRequest);
        }
    }

但是据我所知,这很好,因为我不想使用Firebase?

对此的任何帮助将不胜感激,这是我第一次尝试为Android编写任何东西,这是使我退缩的最后一个问题。

1 个答案:

答案 0 :(得分:0)

确保在AndroidManifest.xml中也声明了Admob ApplicationId

<application
      ...>
     <!-- meta data -->
     <meta-data
         android:name="com.google.android.gms.ads.APPLICATION_ID"
         android:value="@string/cAppId" /> 
</application>

还要确保您在build.gradle中添加了这些依赖项

//ads
    implementation 'com.google.firebase:firebase-ads:17.2.0' // or 17.0.0
    implementation 'com.google.android.gms:play-services-ads:17.2.0'