2017-07-16 68 views
0

。 和setADUnitId錯誤已消失,但進口給了我這個錯誤:進口com.google.android.gms.ads.InterstitialAd與其他import語句我使用import:import com.google.android.gms.ads.InterstitialAd .;方法setAdUnitId(String)的方法未定義爲InterstitialAd

import com.badlogic.gdx.Gdx; 
    import com.badlogic.gdx.backends.android.AndroidApplication; 
    import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration; 
    import com.google.ads.Ad; 
    import com.google.ads.AdListener; 
    import com.google.ads.AdRequest; 
    import com.google.ads.AdRequest.ErrorCode; 
    import com.google.ads.InterstitialAd; 


    import android.annotation.SuppressLint; 
    import android.content.Context; 
    import android.net.ConnectivityManager; 
    import android.net.NetworkInfo; 
    import android.os.Bundle; 
    import android.os.Handler; 
    import android.os.Message; 
    import android.view.View; 
    import android.view.Window; 
    import android.view.WindowManager; 





    public class MainActivity extends AndroidApplication implements 
    AdListener { 

     private ActionResolverAndroid actionResolverAndroid; 
     private InterstitialAd interstitialAdMob; 

     InterstitialAd mInterstitialAd; 




     @SuppressLint("HandlerLeak") 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      interstitialAdMob = new InterstitialAd(MainActivity.this,"null"); 
      mInterstitialAd.setAdUnitId(getString(R.string.interstitial_full_screen)); //The method setAdUnitId(String) is undefined for the type InterstitialAd 
      interstitialAdMob.setAdListener(this); 
      interstitialAdMob.loadAd(new AdRequest()); 
      requestWindowFeature(Window.FEATURE_NO_TITLE); 
      getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
        WindowManager.LayoutParams.FLAG_FULLSCREEN); 
      getWindow().clearFlags(
        WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); 

      AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration(); 
      cfg.useWakelock = true; 
      cfg.useGL20 = false; 

      actionResolverAndroid = new ActionResolverAndroid(this, 
        startAppInterHandler); 
      View v = initializeForView(new JetPig(actionResolverAndroid), cfg); 
      setContentView(v); 
     } 

     private boolean startAppExit; 


      public Handler startAppInterHandler = new Handler() { 

      @Override 
      public void handleMessage(Message msg) { 
       // if (startAppAd.isReady()) 
       // 
       // { 
       switch (msg.what) { 
       case 1: 
        if (interstitialAdMob.isReady()) 
        interstitialAdMob.show(); // show the ad 
        else 
        interstitialAdMob.loadAd(new AdRequest()); // load the next ad 
        break; 
       case 2: 
        if (interstitialAdMob.isReady()) { 
         interstitialAdMob.show(); 
         startAppExit = true; 
        } else 
         finish(); 

       default: 
        break; 
       } 
       Gdx.app.log("Add", "In ShowStartApp Hanlder"); 

       // } 
      } 
     }; 

     public boolean isNetworkAvailable() { 
      ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
      NetworkInfo activeNetworkInfo = connectivityManager 
        .getActiveNetworkInfo(); 
      return activeNetworkInfo != null; 
     } 

     public void finishActivity() { 
      finish(); 
     } 

     @Override 
     public void onStart() { 
      super.onStart(); 
     } 

     @Override 
     public void onStop() { 
      super.onStop(); 
     } 


     @Override 
     public void onDismissScreen(Ad arg0) { 
      // TODO Auto-generated method stub 
      if (startAppExit) { 
       Gdx.app.log("Add", "Finsh"); 
       finish(); 
      } 
      else 
      { 
       interstitialAdMob.loadAd(new AdRequest()); 
      } 
     } 

     @Override 
     public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onLeaveApplication(Ad arg0) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onPresentScreen(Ad arg0) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onReceiveAd(Ad arg0) { 
      // TODO Auto-generated method stub 

     } 
    } 

回答

0

在你的代碼已經導入碰撞:com.google.ads.InterstitialAd,那麼現在如果你添加了導入:com.google.android.gms.ads.InterstitialAd那麼你的班級將有2個班級名稱爲InterstitialAd =>這會導致碰撞。讓我們進入你的代碼,你使用InterstitialAd如下:private InterstitialAd interstitialAdMob; =>編譯器如何知道你想用什麼InterstitialAd? (因爲你已經輸入了2級InterstitialAd)。因此,如果這種情況下,您必須同時使用com.google.ads.InterstitialAdcom.google.android.gms.ads.InterstitialAd,那麼您的解決方案將是:導入一個,使用另一個全名。

例如:

import com.google.ads.InterstitialAd; 
public class MainActivity extends AndroidApplication implements 
    AdListener { 
     //variable for class has imported 
     private InterstitialAd interstitialAdMob; 

     //variable for class has not imported 
     private com.google.android.gms.ads.InterstitialAd interstitialAdMob_noImport; 
     ... 
} 

編輯:你的功能setADUnitId它只是在com.google.android.gms.ads.InterstitialAd類可用,因此請刪除另外一個。

相關問題