我试图让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编写任何东西,这是使我退缩的最后一个问题。
答案 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'