Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 错误:(125,25)错误:AdRequest()在AdRequest中具有私有访问权限_Java_Android_Xml_Android Studio_Admob - Fatal编程技术网

Java 错误:(125,25)错误:AdRequest()在AdRequest中具有私有访问权限

Java 错误:(125,25)错误:AdRequest()在AdRequest中具有私有访问权限,java,android,xml,android-studio,admob,Java,Android,Xml,Android Studio,Admob,我正在android游戏中编辑,它没有主XML,我想在屏幕上放一个插入式广告。。开发人员说将单元ad id放入String.Xml中。。但没有显示任何广告 我把Firebase的东西放在了广告上,但我遇到了这个错误 Error:(125, 25) error: AdRequest() has private access in AdRequest 这是我的主要java: package com.mogames.beachguard; import java.util.ArrayList;

我正在android游戏中编辑,它没有主XML,我想在屏幕上放一个插入式广告。。开发人员说将单元ad id放入String.Xml中。。但没有显示任何广告 我把Firebase的东西放在了广告上,但我遇到了这个错误

Error:(125, 25) error: AdRequest() has private access in AdRequest
这是我的主要java:

package com.mogames.beachguard;

import java.util.ArrayList;

import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PointF;
import android.graphics.Shader;
import android.graphics.Typeface;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.SoundPool;
import android.net.Uri;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.Toast;

import com.google.ads.Ad;
import com.google.ads.AdListener;
import com.google.ads.AdRequest;
import com.google.ads.InterstitialAd;
import com.google.ads.AdRequest.ErrorCode;
import com.mogames.nudge.Button;
import com.mogames.nudge.HighScoreManager;
import com.mogames.nudge.Instance;
import com.mogames.nudge.ObjectManager;
import com.mogames.nudge.Physics;
import com.mogames.nudge.Screen;
import com.mogames.nudge.Sprite;


public class MainGame extends Screen {

    //paints
    Paint background_shader = new Paint();
    Paint Title_Paint = new Paint();
    Paint SubTitle_Paint = new Paint();
    Paint Score_Paint = new Paint();
    Paint Instruction_Paint = new Paint();
    Paint Sand_shader = new Paint();

    //background
    Bitmap background;

    //instances
    ArrayList<Instance> bubbles = new ArrayList<Instance>();
    Sprite bubble_sprite, bubble_sprite2;

    //physics
    Physics physics = new Physics();

    //states
    final int MENU = 0, GAMEPLAY = 1, HIGHSCORES = 2, GAMEOVER = 3;
    int state = MENU;
    boolean pause = false, notstarted = true;

    //menu buttons
    Button btn_Play, btn_Highscores, btn_Exit, btn_Home, btn_facebook, btn_Replay, btn_sound_mute, btn_music_mute, btn_pause, btn_rate;
    Sprite play_btn_sprite, pause_btn_sprite, beach_sprite, bottle_sprite, grass_sprite;

    //score
    int score = 0;
    HighScoreManager highscoreManager;
    HighScoreManager.Highscore[] highscore_list;
    Sprite score_cup;

    //sound
    SoundPool sp;
    MediaPlayer music;
    int sound_beep, sound_bubble, sound_gameover;
    boolean sound_muted = false, music_muted = false;
    Sprite sound_on, sound_off, music_on, music_off;

    //Colors
    //TODO: Feel free to change these colors
    final int BLACK = Color.argb(255, 51, 51, 51);
    final int RED = Color.argb(255, 255, 112, 80);
    final int WHITE = Color.argb(255, 255, 255, 255);
    final int YELLOW = Color.argb(255, 255, 237, 90);
    final int PEACH = Color.argb(255, 204, 196, 168);//sand color

    //ad
    private InterstitialAd interstitial;
    int ad_counter = 0;

    //game over counter
    int gameover_counter = 0;
    boolean game_over = false;

    //TODO: variables you can change to control game speed, delays...
    int gameover_delay = 20;
    int sand_height = 50;

    //Fish
    ObjectManager fishManager;
    final int JELLYFISH = 0, SPICKY = 1, PIRANHA = 2, SWORDY = 3, SHARK = 4;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        //setDebugMode(true);
        //initialiseAccelerometer();

        //highscores
        highscoreManager = new HighScoreManager(this, savedInstanceState, layout);

        // Create the interstitial
        interstitial = new InterstitialAd(this, getResources().getString(R.string.InterstitialAd_unit_id));

    }

    public void openAd() {
        runOnUiThread(new Runnable() {
            public void run() {
                // Create ad request
                AdRequest request = new AdRequest();

                // Begin loading your interstitial
                interstitial.loadAd(request);

                // Set Ad Listener to use the callbacks below
                interstitial.setAdListener(new AdListener() {

                    @Override
                    public void onReceiveAd(Ad arg0) {
                        if (interstitial.isReady()) {
                            interstitial.show();
                        }
                    }

                    @Override
                    public void onPresentScreen(Ad arg0) {
                    }

                    @Override
                    public void onLeaveApplication(Ad arg0) {
                    }

                    @Override
                    public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) {
                    }

                    @Override
                    public void onDismissScreen(Ad arg0) {
                    }
                });
            }
        });
    }
......................
这是我的屏幕java代码:

package com.mogames.nudge;

import com.google.ads.AdRequest;
import com.google.ads.AdSize;
import com.google.ads.AdView;

import android.app.Activity;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PointF;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.Display;
import android.view.DragEvent;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnDragListener;
import android.view.Window;
import android.view.WindowManager;
import android.view.View.OnTouchListener;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;

public class Screen extends Activity implements Runnable, OnTouchListener, SensorEventListener {
    private SurfaceHolder holder;
    private boolean locker = true, initialised = false;
    private Thread thread;
    //public WakeLock WL;
    private int width = 0, height = 0;
    public float cameraX = 0, cameraY = 0;

    public Activity activity = this;
    public boolean debug_mode = false;
    private long now = SystemClock.elapsedRealtime(), lastRefresh, lastfps;
    public SurfaceView surface;
    private int fps = 0, frames = 0, runtime = 0, drawtime = 0;

    //sensor
    SensorManager sm;
    Sensor s;
    float sensorx, calibratex = 0;
    float sensory, calibratey = 0;
    private boolean default_lanscape = false;
    private int default_lanscape_rotation = 0;

    //world origin
    public final int TOP_LEFT = 0, BOTTOM_LEFT = 1;
    public int origin = TOP_LEFT;

    //layout
    public RelativeLayout layout;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        activity = this;

        //full screen
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

        //create surface
        layout = new RelativeLayout(this);
        surface = new SurfaceView(this);

        //TODO:MAKE SURE TO REMOVE INTERSTATIAL ADs BY GOING TO MAINGAME.JAVA LINE 595 AND REMOVING openAd();
                //AdView ad = new AdView(this, AdSize.BANNER, "ca-app-pub-9058687372170937/9187964203"); //make sure id is of banner ad.
                //layout
//              RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
//              params1.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
//              params1.addRule(RelativeLayout.CENTER_HORIZONTAL);
//              ad.setLayoutParams(params1);
//              layout.addView(ad);
//              AdRequest request = new AdRequest();
//              ad.loadAd(request);
        //TODO :----------------------------------------------------------------------------------------------------------------------------------------------

        layout.addView(surface);
        setContentView(layout);
        holder = surface.getHolder();

        //listeners
        surface.setOnTouchListener(this);

        // start game loop
        thread = new Thread(this);
        thread.start();

        onCreate();

    }

    /* Main game loop.......................................................... */
    @Override
    public void run() {
        //int rand = (int) (Math.random() * 100);
        synchronized (ACCESSIBILITY_SERVICE) {

            while (locker) {
                //System.out.println("start-");

                now = SystemClock.elapsedRealtime();
                if (now - lastRefresh > 37) {//limit 35fps - 28
                    lastRefresh = SystemClock.elapsedRealtime();
                    if (!holder.getSurface().isValid()) {
                        continue;
                    }

                    //fps
                    if (now - lastfps > 1000) {
                        fps = frames;
                        frames = 0;
                        lastfps = SystemClock.elapsedRealtime();
                    } else {
                        frames++;
                    }

                    //step
                    if (initialised)
                        Step();
                    //take run time
                    runtime = (int) (SystemClock.elapsedRealtime() - lastRefresh);

                    //draw screen
                    Canvas canvas = holder.lockCanvas();
                    if (initialised)
                        Draw(canvas);
                    else {
                        //initialise game
                        width = canvas.getWidth();
                        height = canvas.getHeight();
                        Start();
                        initialised = true;
                    }
                    holder.unlockCanvasAndPost(canvas);
                    //take render time
                    drawtime = (int) (SystemClock.elapsedRealtime() - lastRefresh) - runtime;
                }
                //System.out.println("finish-----");
                //try {
                //  Thread.sleep(10);
                //} catch (InterruptedException e) {
                //  e.printStackTrace();
                //}
            }
        }
    }

    /* Detect and override back press */
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        super.onKeyDown(keyCode, event);
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            BackPressed();
            return false;
        }

        return false;
    }

    /* Events.................................................................. */
    public void onCreate() {

    }

    public void Start() {

    }

    synchronized public void Step() {

    }

    public void Draw(Canvas canvas) {
        if (debug_mode) {
            Paint paint = new Paint();
            paint.setColor(Color.BLACK);
            paint.setTextSize(dpToPx(20));
            canvas.drawText("Width: " + width + ", Height: " + height, 5, dpToPx(20), paint);
            canvas.drawText("default landscape: " + default_lanscape + " Rotation: " + default_lanscape_rotation, 5, 5 + dpToPx(20) * 2, paint);
            canvas.drawText("FPS: " + fps + "run_time: " + runtime + "draw_time: " + drawtime, 5, 5 + dpToPx(20) * 3, paint);
        }

    }

    public void Finish() {

    }

    public void Pause() {
        locker = false;

        while (true) {
            try {
                thread.join();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            break;
        }
        thread = null;
    }

    public void Resume() {
        locker = true;
        thread = new Thread(this);
        thread.start();
    }

    public synchronized void BackPressed() {

    }

    public synchronized void onTouch(float TouchX, float TouchY, MotionEvent event) {
    }

    public synchronized void onAccelerometer(PointF point) {
    }

    /* Functions............................................................... */
    public void Exit() {
        locker = false;

        while (true) {
            try {
                thread.join();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            break;
        }
        thread = null;

        System.exit(0);
        activity.finish();
    }

    public Activity getActivity() {
        return activity;
    }

    public void setDebugMode(boolean debugModeOn) {
        debug_mode = debugModeOn;
    }

    //screen related
    public int ScreenWidth() {
        return width;
    }

    public int ScreenHeight() {
        return height;
    }

    /**
     * World X to Screen X
     * 
     * @param worldX
     *            The x-coordinate relative to the world
     */
    public int ScreenX(float worldX) {
        return (int) (worldX - cameraX);
    }

    /**
     * World Y to Screen Y
     * 
     * @param worldY
     *            The Y-coordinate relative to the world
     */
    public int ScreenY(float worldY) {
        if (origin == TOP_LEFT)
            return (int) (worldY - cameraY);
        else
            return ScreenHeight() - (int) (worldY - cameraY);
    }

    /**
     * World origin (0,0)
     * 
     * @param origin
     *            TOP_LEFT or BOTTOM_LEFT
     */
    public void setOrigin(int origin) {
        this.origin = origin;
    }

    public boolean inScreen(float x, float y) {
        return ((ScreenY(y) > 0 && ScreenY(y) < ScreenHeight()) && (ScreenX(x) > 0 && ScreenX(x) < ScreenWidth()));
    }

    public int dpToPx(int dp) {
        float density = getApplicationContext().getResources().getDisplayMetrics().density;
        return Math.round((float) dp * density);
    }

    //sensor related
    public void initialiseAccelerometer() {
        //device has its default landscape or portrait
        Display display = ((WindowManager) activity.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
        int rotation = display.getRotation();
        if (getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) {
            //portrait
            if (rotation == Surface.ROTATION_0)
                default_lanscape = false;
            if (rotation == Surface.ROTATION_180)
                default_lanscape = false;
            if (rotation == Surface.ROTATION_90)
                default_lanscape = true;
            if (rotation == Surface.ROTATION_270)
                default_lanscape = true;
        } else {
            //landscape
            if (rotation == Surface.ROTATION_0)
                default_lanscape = true;
            if (rotation == Surface.ROTATION_180)
                default_lanscape = true;
            if (rotation == Surface.ROTATION_90)
                default_lanscape = false;
            if (rotation == Surface.ROTATION_270)
                default_lanscape = false;
        }
        default_lanscape_rotation = rotation;

        sm = (SensorManager) activity.getSystemService(Context.SENSOR_SERVICE);
        if (sm.getSensorList(Sensor.TYPE_ACCELEROMETER).size() != 0) {
            s = sm.getSensorList(Sensor.TYPE_ACCELEROMETER).get(0);
            sm.registerListener(this, s, SensorManager.SENSOR_DELAY_NORMAL);
        }

    }

    public void CalibrateAccelerometer() {
        calibratex = sensorx * Math.abs(sensorx);
        calibratey = sensory * Math.abs(sensory);
    }

    public PointF getAccelerometer() {
        return new PointF((sensorx * Math.abs(sensorx) - calibratex), (sensory * Math.abs(sensory) - calibratey));
    }

    /* Touch events.......................................................... */
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (initialised) {
            onTouch(event.getX(), event.getY(), event);
        }
        return true;
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
    }

    @Override
    public void onSensorChanged(SensorEvent event) {
        if (initialised) {
            //read values
            if (getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) {
                if (default_lanscape) {
                    sensorx = -event.values[1];
                    sensory = -event.values[0];
                } else {
                    sensory = event.values[1];
                    sensorx = -event.values[0];
                }
            } else {
                if (default_lanscape) {
                    sensory = event.values[1];
                    sensorx = -event.values[0];
                } else {
                    sensorx = event.values[1];
                    sensory = event.values[0];
                }
            }

            //call accelerometer event
            onAccelerometer(new PointF((sensorx - calibratex), (sensory - calibratey)));

        }
        //sleep for a while
        try {
            Thread.sleep(16);
        } catch (InterruptedException ex) {
            ex.printStackTrace();
        }
    }

    /* pause, destroy, resume................................................ */
    @Override
    protected void onResume() {
        super.onResume();
        Resume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        Pause();

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Finish();
    }

}
这是我的String.xml:

<?xml version="1.0" encoding="utf-8"?>
因此,请任何人在每场比赛结束后帮我在游戏中插入一则广告

试试这个:

private InterstitialAd interstitial;


//Create the interstitial Ad.
    interstitial = new InterstitialAd(this);

    //Set unit id.
    interstitial.setAdUnitId("ca-app-pub-3940256099942544/1033173712");  //test interstitial AD

    //Create request.
    AdRequest adRequest = new AdRequest.Builder().build();

    //Start loading...
    interstitial.loadAd(adRequest);
在游戏结束的地方添加以下内容:

  //Interstitial AD
        if(interstitial.isLoaded()) {
            interstitial.show();
        }
        else {
            AdRequest interstitialRequest = new AdRequest.Builder().build();
            interstitial.loadAd(interstitialRequest);
        }

希望有帮助

尝试以下方法可能会对您有所帮助:对于间隙广告:-
  //Interstitial AD
        if(interstitial.isLoaded()) {
            interstitial.show();
        }
        else {
            AdRequest interstitialRequest = new AdRequest.Builder().build();
            interstitial.loadAd(interstitialRequest);
        }