将 Admob 添加到 libgdx

2024-01-06

    RelativeLayout layout = new RelativeLayout(this);
    AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
    View gameView = initializeForView(new MainGame(), config);

    layout.addView(gameView);


    adView = new AdView(this);

    adView.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {
            System.out.println("LOAD");
        }
    });
    adView.setAdSize(AdSize.SMART_BANNER);
    adView.setAdUnitId("ca-app-xxx-xxxxxxxxxx/xxxxxxxxxx");

    AdRequest.Builder builder = new AdRequest.Builder();
    RelativeLayout.LayoutParams adParams = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT,
            RelativeLayout.LayoutParams.WRAP_CONTENT
    );
    layout.addView(adView, adParams);
    adView.loadAd(builder.build());

    setContentView(layout);

没有显示任何内容,没有广告,为什么, 我还在 build.gradle 中添加了(项目:projectN) 编译“com.google.android.gms:play-services-ads:$admobVersion”

使用ubuntu 16.04,android-studio


在不使用 Firebase 的情况下添加 AdMob 广告:

  1. 把这些线放进去build.gradleandroid 模块。

    dependencies {
    
        compile 'com.google.android.gms:play-services-ads:10.2.4'
    }
    
  2. 添加权限于AndoidManifest.xml file

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    

    Inside <application标签添加Activity如果想使用插页式广告

    <meta-data android:name="com.google.android.gms.version"
               android:value="@integer/google_play_services_version" />
    
    <activity android:name="com.google.android.gms.ads.AdActivity"
              android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
              android:theme="@android:style/Theme.Translucent" />
    
  3. AndroidLauncher 类。

    public class AndroidLauncher extends AndroidApplication {
    
    private static final String adUnitId="ca-app-pub-xxxxxxxxxxxxxxxxxxxxx";
    private AdView adView;
    
    @Override
    protected void onCreate (Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
    
        RelativeLayout 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 MyGdxGame(), 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);
    
        adView = new AdView(this);
        adView.setAdSize(AdSize.BANNER);
        adView.setAdUnitId(adUnitId);
    
        AdRequest.Builder adRequestBuilder = new AdRequest.Builder();
        adRequestBuilder.addTestDevice(AdRequest.DEVICE_ID_EMULATOR);
        adView.loadAd(adRequestBuilder.build());
    
        RelativeLayout.LayoutParams topParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
        topParams.addRule(RelativeLayout.ALIGN_PARENT_TOP,RelativeLayout.TRUE);
        topParams.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
        layout.addView(adView, topParams);
        adView.setBackgroundColor(android.graphics.Color.TRANSPARENT);
    
        setContentView(layout);
    }
    
    @Override
    protected void onResume() {
        super.onResume();
        adView.resume();
    }
    
    @Override
    protected void onPause() {
        super.onPause();
        adView.pause();
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        adView.destroy();
    }
    }
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Admob 添加到 libgdx 的相关文章

  • SwingWorker 在另一个 SwingWorker 的 did 方法中

    首先 我需要通知您 我正在尽最大努力学习如何用 Java 编写代码 虽然有点困难 但我相信我能做到 我过去提交了几个有关 SwingWorkers 等的问题 每一个我都以为我已经做到了 但后来发现我仍然需要学习 希望这一次不是那样的一次 话
  • 检测设备方向

    我需要检测 Android 设备方向变化 而无需手动处理传感器数据 同时保持活动方向坚持某个方向 onConfigurationChange不会起作用 因为会让我的活动不旋转 通过使用传感器数据来检测方向变化 我认为这是轮子的发明 因为 A
  • 为什么下面代码的输出是Thread[main,5,main]

    public class test1 public static void main String args TODO Auto generated method stub Thread t Thread currentThread Sys
  • 通过配置更改保留 CoroutineScope 的干净方法,无需 ViewModel

    我知道建议是在我们的 Activity 中使用 ViewModel 这样我们就可以使用它viewModelScope 由于 ViewModel 的寿命比 Activity 的寿命长 因此我们不必取消以下作业activity onDestro
  • vm 参数中的 -D 是什么,它表示为什么我们必须在 vm 参数中始终指定 -D

    vm 参数中的 D 是什么 它表示为什么我们必须在 vm 参数中始终指定 D 有什么标准吗 如果是 那是什么以及指定的位置 D 设置当前运行的 java 程序可以访问的属性值 它允许程序员设置程序运行所需的值 但程序不知道这些值是什么 因此
  • 两条腿的 OAuth 和 Gmail Atom feed

    我们正在尝试让 2 legged OAuth 与 Gmail Atom feed 一起使用 我们使用 John Kristian Praveen Alavilli 和 Dirk Ba lfanz 贡献的 Java 库 http oauth
  • Servlet 调度程序当前不可用

  • Java字符串查找和替换的最佳方法?

    我正在寻找 Java 中字符串查找和替换的最佳方法 这是一句话 我的名字叫米兰 人们都知道我叫米兰瓦西奇 我想用 Milan Vasic 替换 Milan 弦 但在我已经有 Milan Vasic 的地方 情况不应该是这样 搜索 替换后的结
  • DialogFragment 关闭事件

    我需要处理 DialogFragment 的结尾 在调用 dismiss 之后 例如 我会在关闭后 包含 片段的活动内显示一个 toast 我该如何处理该事件 覆盖onDismiss 在你的DialogFragment中 或者使用setOn
  • Android 两个 Activity 之间的共享元素转换不起作用

    在我的应用程序中 我尝试使用新引入的活动之间共享的元素 如果共享元素具有固定位置 例如 android layout gravity top 但是当视图被锚定时问题就出现了 我的第一个活动如下所示
  • 如何获取Android中的所有主屏幕?

    我是安卓开发新手 我知道每个主屏幕都是启动器中的一个工作区 我想获取屏幕上所有应用程序图标的所有位置信息 那么有没有办法获取这些屏幕对象及其图标信息的列表 ADD 我更期待的是应用程序图标和屏幕之间的关系 例如 我想要某个应用程序图标的位置
  • while 之后无法访问的语句[重复]

    这个问题在这里已经有答案了 我只是修改代码 在以下代码中出现错误 int x 1 System out println x x while true x System out println x x 错误在最后一行 我可以知道错误 错误 无
  • 片段中的 SavedInstanceState 始终为 null

    我使用 XML 以及活动中的 setContentView 将片段附加到活动 A 有一个问题 因为我的片段中有非常动态的视图 所以当方向改变时 我必须恢复所有的观点状态 我有问题 因为我正在使用类似的东西 public void onSav
  • 构造函数参数和属性一起出现在 bean 定义中

  • 在两个片段之间拖放视图

    我目前正在尝试在两个片段之间实现拖放 我已经将它们添加到我的活动中 如下所示 FragmentManager fm getFragmentManager FragmentTransaction ft fm beginTransaction
  • Retrofit 2.0:预期为 BEGIN_OBJECT,但在第 1 行第 1 列路径 $ [重复] 处为 STRING

    这个问题在这里已经有答案了 我在邮递员上传递了更新用户请求并获得了成功的响应 参见图片 现在当我尝试使用 Retrofit 2 在我的应用程序中执行相同操作时 出现错误 com google gson JsonSyntaxException
  • 获取Java中ResultSet返回的行数

    我用过一个ResultSet返回一定数量的行 我的代码是这样的 ResultSet res getData if res next System out println No Data Found while res next code t
  • 将主题应用到 v7 支持操作栏

    我正在使用support v7库来实现ActionBar在我的应用程序中 我的styles xml file
  • Android Webview隐私浏览

    我在我的 Android 应用程序中使用 webview 从多个站点获取一些网页 我对 webview 行为有一些疑问 webview 是否存储历史记录 cookie 表单自动填充信息 如果是的话 我们可以阻止它这样做吗 如果 Webvie
  • Java 可变 BigInteger 类

    我正在使用 BigIntegers 进行计算 该计算使用一个调用 multiply 大约 1000 亿次的循环 并且从 BigInteger 创建新对象使其非常慢 我希望有人编写或找到了 MutableBigInteger 类 我在 jav

随机推荐

  • 内联对齐 3 个 div

    我正在尝试将 3 个 div 彼此内联对齐 i have header width 100 height 160px 作为主容器 因此容器适合页面的宽度 100 then header left width 33 display inlin
  • 在SSIS数据流中动态创建表

    如何让 SSIS 数据流创建一个不存在的表 每次我尝试运行该包时 都会出现错误 指出目标表不存在 由于您希望包创建一个表然后填充它 因此您可以使用以下命令创建一个表 Execute SQL任务 只需为其提供创建表的脚本即可 如果您无法选择使
  • 检查Python中的整数溢出

    class Solution object def reverse self x type x int rtype int negative False if x lt 0 x x 1 negative True else x x sum
  • T --> IHandler 之间的映射

    我有以下界面 public interface IHandler
  • 如何获取管道另一端的pid?

    我想知道管道另一端的pid 如果是 Linux 我可以匹配 idls l proc SELF PID fd 0就像这些命令一样 root host command1 command2 I ve known command2 s PID 59
  • 如何删除 django 中的数据库表?

    我改变了模型并进行了迁移 然后我又更改了一次模型 当尝试 python manage py migrate 时出现错误 Operations to perform Apply all migrations admin auth conten
  • 404 - 请求的资源不可用。 (Spring-MVC)

    我对 Spring MVC 视图解析器不太熟悉 我试图从我的控制器返回一个 JSP 我的控制器方法正在正确执行 但是当返回视图时 我得到404 The requested resource is not available error 这是
  • Javascript / Nodejs 在 Nodejs 模块的顶层使用等待

    我尝试找到问题的解决方案 但找不到它 并且正在寻找一些 最佳实践示例 我有一个 Nodejs Express 应用程序 我的函数被分割在文件中 例如我有这个控制器 oktacontroller js var okta api key
  • IE 和 Firefox 中的按钮大小不相等

    我的 jsp 页面上有几个按钮 我使用的样式为 buttonblue background color 003366 border color 99CCFF color FFFFFF font family Verdana Arial He
  • 对如何处理 CORS OPTIONS 预检请求感到困惑

    我是跨源资源共享的新手 并试图让我的网络应用程序响应 CORS 请求 我的 web 应用程序是在 Tomcat 7 0 42 上运行的 Spring 3 2 应用程序 在我的 web 应用程序的 web xml 中 我启用了 Tomcat
  • IISExpress 8 无法读取配置文件redirection.config

    我正在使用 IISExpress8 运行 Windows Server 2008 R2 x64 当导航到 c Program Files x86 IIS Express gt iisexpress exe it says 文件名 重定向 c
  • Rails Chartkick:只需要轴上的整数值。使用离散的还是其他的?

    假设我有以下代码 使用 Chartkick 这会产生以下图表 我希望使用整数来标记垂直轴 不是小数 我认为discrete选项应该这样做 但对于这个例子 它所做的只是将水平轴上元素的格式从时间更改为数字 即以下代码 产生这个 所以我的问题是
  • 使用 TOR 运行 python 脚本

    大家好 首先我想确保有类似的主题 但没有公认的答案或明确的回应 所以我想把它们结合起来再问一遍 我有以下脚本 import urllib2 proxy urllib2 ProxyHandler http 127 0 0 1 9050 ope
  • 我想使用PHP的PDO将数据插入mysql数据库。但数据没有插入

    我想使用PHP的PDO将数据插入mysql数据库 但数据没有插入 我以前使用过PDO 但没有遇到任何问题 但在下面的例子中 我不明白我哪里做错了 谁能帮帮我吗 输出显示良好 有回声
  • 如何在 R 中为 Quantstrat 编写自定义规则函数 - 将追踪止损订单替换为 stoplimit 和ruleOrderProc

    我的目标是使用下面概述的规则来生成信号来放置新的 stoplimit 订单来取代我的追踪止损 我不希望我的止损无限期地跟踪 直到它达到我的盈亏平衡价格 如果已经可以以某种方式实现这一点 请告诉我 我希望在 quantstrat 中编写一个自
  • 如何通过短信或彩信将超链接发送到手机

    我一直在寻找一种方法 通过短信或彩信将具有不同外观的 URL 的超链接发送到手机 我能想到的唯一例子如下 url http www google co uk Click Here url 所以上面的代码会显示 点击这里 当您单击 单击此处
  • 如何使用 JSON-simple (Java) 判断返回是 JSONObject 还是 JSONArray?

    我正在访问一项服务 有时会得到这样的结果 param1 value1 param2 value2 有时会得到这样的回报 param1 value1 param2 value2 param1 value1 param2 value2 我如何知
  • 无法在 Gerrit 中合并

    每当我向 Gerrit 发送评论并且该评论等待一段时间时 我都会收到cannot mergeGerrit 中的消息 我理解它的到来 因为其他人会更改相同的文件并在我之前交付 我正在尝试以下解决方法来解决我的问题 放弃当前的审查 创建一个新的
  • GEKKO RTO 与 MPC 模式

    这是一个由此衍生的问题one https stackoverflow com questions 60761440 variable bounds in mpc with gekko 在发布我的问题后 我找到了一个解决方案 更像是强制优化器
  • 将 Admob 添加到 libgdx

    RelativeLayout layout new RelativeLayout this AndroidApplicationConfiguration config new AndroidApplicationConfiguration