Halo,
I want to ask about my project, I tried to apply the Audience Network to my application, exactly after the splash screen and code like this ...
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import com.facebook.ads.Ad;
import com.facebook.ads.AdError;
import com.facebook.ads.InterstitialAdListener;
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.InterstitialAd;
import com...Config;
import com...R;
import com.facebook.ads.*;
import static com.facebook.ads.AdSettings.IntegrationErrorMode.INTEGRATION_ERROR_CALLBACK_MODE;
import static com.facebook.ads.AdSettings.IntegrationErrorMode.INTEGRATION_ERROR_CRASH_DEBUG_MODE;
public class ActivitySplash extends AppCompatActivity {
private InterstitialAd interstitialAd;
private com.facebook.ads.InterstitialAd interstitialAdFB;
private static final int RC_READ_WRITE_EXTERNAL_STORAGE_PERM = 125;
Context context = this;
MainActivity mActivity= new MainActivity();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
FbAdLoad();
if (Config.ENABLE_ADMOB_ON_LOAD) {
loadInterstitialAd();
} else {
Log.d("AdMob", "Interstitial on load is disabled");
}
new CountDownTimer(3000, 1000) {
@Override
public void onFinish() {
Intent intent = new Intent(getBaseContext(), MainActivity.class);
startActivity(intent);
finish();
f (Config.ENABLE_ADMOB_ON_LOAD) {
if (interstitialAd.isLoaded()) {
interstitialAd.show();
}else{
interstitialAdFB.show();
}
} else {
Log.d("AdMob", "Interstitial on load is disabled");
}
}
@Override
public void onTick(long millisUntilFinished) {
}
}.start();
}
private void FbAdLoad(){
//com.facebook.ads.AdSettings.setIntegrationErrorMode(INTEGRATION_ERROR_CALLBACK_MODE);
//interstitialAd = new InterstitialAd(this, "YOUR_PLACEMENT_ID");
// interstitialAdFB = new com.facebook.ads.InterstitialAd(getApplicationContext());
interstitialAdFB = new com.facebook.ads.InterstitialAd(context, getString(R.string.PlacementID));
interstitialAdFB.setAdListener(new InterstitialAdListener() {
@Override
public void onInterstitialDisplayed(Ad ad) {
// Interstitial ad displayed callback
// Log.e(TAG, "Interstitial ad displayed.");
}
@Override
public void onInterstitialDismissed(Ad ad) {
// Interstitial dismissed callback
// Log.e(TAG, "Interstitial ad dismissed.");
}
@Override
public void onError(Ad ad, AdError adError) {
// Ad error callback
// Log.e(TAG, "Interstitial ad failed to load: " + adError.getErrorMessage());
}
@Override
public void onAdLoaded(Ad ad) {
// Interstitial ad is loaded and ready to be displayed
//Log.d(TAG, "Interstitial ad is loaded and ready to be displayed!");
// Show the ad
//interstitialAdFB.show();
}
@Override
public void onAdClicked(Ad ad) {
// Ad clicked callback
// Log.d(TAG, "Interstitial ad clicked!");
}
@Override
public void onLoggingImpression(Ad ad) {
// Ad impression logged callback
// Log.d(TAG, "Interstitial ad impression logged!");
}
});
// For auto play video ads, it's recommended to load the ad
// at least 30 seconds before it is shown
interstitialAdFB.loadAd();
}
private void loadInterstitialAd() {
Log.d("TAG", "showAd");
interstitialAd = new InterstitialAd(getApplicationContext());
interstitialAd.setAdUnitId(getResources().getString(R.string.admob_interstitial_id));
interstitialAd.loadAd(new AdRequest.Builder().build());
interstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
}
});
}
}
And after run, I found an error like this
java.lang.IllegalStateException: You can't call show() for ad in state ERROR. You can change Integration Error mode by setting AdSettings.setIntegrationErrorMode() at com.facebook.ads.internal.c.a.a(Unknown Source) at com.facebook.ads.internal.c.f.a(Unknown Source) at com.facebook.ads.InterstitialAd.show(Unknown Source) at com.zahyakarin.BTSWallpapersKPOPNewHD.fragments.FragmentRecent.showInterstitialAd(FragmentRecent.java:463) at com.zahyakarin.BTSWallpapersKPOPNewHD.fragments.FragmentRecent.access$000(FragmentRecent.java:55) at com.zahyakarin.BTSWallpapersKPOPNewHD.fragments.FragmentRecent$1$1.run(FragmentRecent.java:117) at android.os.Handler.handleCallback(Handler.java:754) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:165) at android.app.ActivityThread.main(ActivityThread.java:6354) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:883) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
What should I do to resolve this error?
Thank you..