Реклама Chartboost не работает в проекте libgdx - PullRequest
0 голосов
/ 01 июля 2018

Привет! Я интегрирую Chartboost в свою игру, но реклама не показывается в режиме реального времени и в режиме тестирования. Я точно следовал этому руководству, и в моем коде нет ошибок https://github.com/itsabhiaryan/AdService-LibGDX

В https://github.com/itsabhiaryan/AdService-LibGDX/blob/master/android/src/com/its/adservice/AndroidLauncher.java строке 34 я изменил на ad = new ChartBoostHelper (this); Я удалил методы onSaveInstanceState и onRestoreInstanceState, а также внес другие изменения. Я вызвал метод показа объявлений в нужном месте, но он не показывается.

Я зарегистрировал Chartboost и добавил свой appId и подпись соответственно, а также установил настройки для альбомной и промежуточной рекламы. Я изменил файл AndroidManifest, как в учебнике, и добавил файл jar в папку / android / libs. Я что-то упускаю или делаю что-то не так?

Это мой android / AndroidLauncher.java, ChartBoostHelper и класс Ad такой же, как в ссылке на github.

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.RelativeLayout;
import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;

public class AndroidLauncher extends AndroidApplication implements ActionResolver {
    private Ad ad;
    public RelativeLayout layout;
    View gameView;

    @Override
    protected void onCreate (Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
        config.useAccelerometer = false;
        config.useCompass = false;
        config.useImmersiveMode = true;

        layout = new RelativeLayout(this);
        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
        layout.setLayoutParams(params);

        View gameView=initializeForView(new MyGame(this), config);
        RelativeLayout.LayoutParams gameViewParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
        gameViewParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
        gameViewParams.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);

        gameView.setLayoutParams(gameViewParams);
        layout.addView(gameView);

        ad=new ChartBoostHelper(this);
        ad.embedView(layout);

        setContentView(layout);

    @Override
    public void onResume() {
        super.onResume();
        ad.resume();
    }

    @Override
    public void onPause() {
        ad.pause();
        super.onPause();
    }

    @Override
    public void onDestroy() {
        ad.destroy();
        super.onDestroy();
    }

    @Override
    protected void onStart() {
        super.onStart();
        ad.start();
    }

    @Override
    protected void onStop() {
        super.onStop();
        ad.stop();
    }

    @Override
    public void showOrLoadInterstitial() {
        ad.showOrLoadInterstitial();
    }

    @Override
    public boolean showVideoAd(boolean isRewarded) {

        return ad.showVideoAd(isRewarded);
    }


    @Override
    protected void onActivityResult (int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
    }
}

Это ядро ​​/ ActionResolver.java

public interface ActionResolver {

    void showOrLoadInterstitial();
    boolean showVideoAd(boolean isRewarded);
}

Это та часть, где я вызываю showOrLoadInterstitial (); в методе рендеринга внутри ядра / GameScreen.java

        if((touchPos.x >= camera.position.x-(replaybutton.getWidth()/2 + 50) && touchPos.x <= (camera.position.x - (replaybutton.getWidth()/2 + 50))+replaybutton.getWidth()) && (touchPos.y>=55 && touchPos.y<=55+replaybutton.getHeight())){
           if(SplashScreen.adcount >= 4 && prefs.getBoolean("ADBLOCK") == false){
                game.actionResolver.showOrLoadInterstitial();
                SplashScreen.adcount = 0;
            }
            game.setScreen(new MainMenu(game,this.asset));
            dispose();
        }

Вот мой файл AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.robot1gamesfree.game"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="23" />
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/GdxTheme" >
        <activity
            android:name="com.robot1gamesfree.game.AndroidLauncher"
            android:label="@string/app_name" 
            android:screenOrientation="sensorLandscape"
            android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <activity android:name="com.chartboost.sdk.CBImpressionActivity"
                android:excludeFromRecents="true"
                android:hardwareAccelerated="true"
                android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
                android:configChanges="keyboardHidden|orientation|screenSize" />

        </activity>
    </application>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="com.android.vending.BILLING" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
...