当前位置: 首页 > 知识库问答 >
问题:

在Android Studio/Gradle中进行自由/专业构建变体时,如何处理自由版本库的导入?

柴辰阳
2023-03-14

我已经为免费版设置了一个单独的清单文件,带有额外的权限,但当我构建专业版时,它仍然表示需要这些权限。

只有当我将gradle文件改为不再使用com.google.android.gms:play-services-ads时,它才没有额外的两个权限。

我将gradle文件从:


    compile 'com.google.android.gms:play-services-ads:8.4.0'

致:


    freeCompile 'com.google.android.gms:play-services-ads:8.4.0'

但当我这样做时,我的代码中会出现错误,因为以下导入无法解决:


    import com.google.android.gms.ads.AdRequest;
    import com.google.android.gms.ads.AdView;


    if (!isPro) {
        AdView mAdView = (AdView) findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
    }

另一个问题是自由布局上有ID不在专业布局中。这将在pro版本中生成一个错误,因为找不到r.id.adview。为了解决这个问题,我在pro布局上创建了一个空的、不可见的文本框,并将其命名为AdView。有更好的办法吗?

共有1个答案

陶鹏
2023-03-14

您可以创建类的两个版本(每个版本一个)

..\app\src\free\java\com\android\application\class.java

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
...
AdView mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);

另一个

..\app\src\pro\java\com\android\application\class.java

 类似资料:
  • 《自由软件,自由社会:理查德·斯托曼选集》Free Software, Free Society: Selected Essays of Richard M. Stallman是一本指导了无数人的书籍,它将理查德·斯托曼的自由软件哲学和思想,阐述的淋漓尽致。 此书第一版首发于 2002 年。也是在 2002 年,北京 GNU/Linux 用户组(BLUG)成立了,经过十多年的发展壮大,已经成为中国

  • 我已经从磁盘(以前在日食中使用)导入了一个渐变项目到IntelliJ。 每次我启动IntelliJ时,即使我单击“导入分级项目”,也会弹出一个弹出窗口“IntelliJIDEA找到一个分级构建脚本”。 有没有办法将项目与Gradle永久链接,或者至少在启动时自动化?

  • 存在可以强制构建仅在特定JDK版本上运行的maven强制执行器插件。 我想知道有没有什么实际的理由?我们已经构建了配置来指定源和目标版本。据我所知,这已经足够了,因为Java是向后兼容的。例如,它在gradle中的外观: maven就是这样的: 如果你看到任何需要jdk确切版本的理由,请你也写下来。 UPD。问题更多的是,编译版本8的java源/目标项目和JDK的8、9、10或11是否有任何实际差

  • build.gradle(:app) 完整的实现可以在Coinverse的GitHub存储库中找到。 null

  • 我正在尝试使用 JCA 和 CICSECI 功能通过 CICS 事务网关连接到 IBM 大型机。 我的Servlet代码是: 我得到的解释是: 我的服务器.xml如下: 我的POM是: 当我搜索错误代码时。IBM文档声明:https://www . IBM . com/support/knowledge center/en/SSZHFX _ 9 . 2 . 0/ctg 9628 e . html