在开发和发布 Android 应用时,使用 AdMob 广告是一个常见的需求。在开发阶段,通常会使用 AdMob 提供的测试广告 ID,以确保广告集成正确且不会违反 AdMob 的政策。然而,在发布应用时,需要将测试广告 ID 更改为实际的广告 ID。
以下是一个详细的步骤指南,展示如何自动从 AdMob 测试广告 ID 更改为正确的横幅广告 ID,并生成签名的 APK。
首先,在你的 Android 项目中配置 AdMob 广告 ID。通常,这些 ID 会在 res/values/strings.xml
文件中定义。
res/values/strings.xml
<resources>
<!-- AdMob Test Ad Unit ID -->
<string name="admob_test_banner_id">ca-app-pub-3940256099942544/6300978111</string>
<!-- AdMob Real Ad Unit ID -->
<string name="admob_real_banner_id">ca-app-pub-xxxxxxxxxxxxxxxx/yyyyyyyyyy</string>
</resources>
在你的代码中,根据构建类型(debug 或 release)使用不同的广告 ID。
MainActivity.java
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.MobileAds;
public class MainActivity extends AppCompatActivity {
private AdView mAdView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MobileAds.initialize(this, initializationStatus -> {});
mAdView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
}
}
res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="@string/admob_test_banner_id"/>
</RelativeLayout>
在 build.gradle
文件中,使用 Gradle 构建脚本自动替换广告 ID。
app/build.gradle
android {
...
buildTypes {
debug {
resValue "string", "admob_banner_id", "@string/admob_test_banner_id"
}
release {
resValue "string", "admob_banner_id", "@string/admob_real_banner_id"
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
在你的布局文件中,使用 admob_banner_id
作为广告单元 ID。
res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="@string/admob_banner_id"/>
</RelativeLayout>
在 app/build.gradle
文件中配置签名信息。
android {
...
signingConfigs {
release {
keyAlias 'your-key-alias'
keyPassword 'your-key-password'
storeFile file('path/to/your/keystore.jks')
storePassword 'your-store-password'
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
}
使用 Gradle 命令生成签名的 APK。
./gradlew assembleRelease
生成的 APK 文件将位于 app/build/outputs/apk/release/
目录下。你可以使用 Android Studio 或命令行工具来验证 APK 文件,并将其上传到 Google Play 商店。
通过上述步骤,你可以自动从 AdMob 测试广告 ID 更改为正确的横幅广告 ID,并生成签名的 APK。这种方法确保了在开发和发布阶段使用不同的广告 ID,从而避免了在开发过程中违反 AdMob 的政策。
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云