gpt4 book ai didi

android - 有和没有广告的多种构建风格(新的谷歌开发者政策)

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:39:42 24 4
gpt4 key购买 nike

我发布了一个具有 2 种构建风格的应用程序:一个包含广告的“正常”版本和一个无广告版本。

在 Google Play 开发者控制台中,如果您的应用使用广告,您现在必须对其进行标记。这对于普通版本是可以的,但无广告版本使用与专业版相同的依赖项(尤其是谷歌播放服务)。因此,当我将此版本设置为无广告时,我会收到警告,因为发现广告库。

是否可以根据 gradle 构建风格更改依赖项?

build.gradle:

android {
(...)
productFlavors {
lite {
signingConfig signingConfigs.Release
versionCode 14
versionName '1.1.5'
buildConfigField "boolean", "IS_PRO", "false"
}
pro {
applicationId 'com.example.exampleadfree'
signingConfig signingConfigs.Release
targetSdkVersion 21
versionCode 14
versionName '1.1.5'
buildConfigField "boolean", "IS_PRO", "true"
}
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v4:21.0.3'
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:cardview-v7:21.0.2'
compile 'com.google.android.gms:play-services:6.1.+'
compile project(':libraries:SharedItems')
compile 'com.android.support:recyclerview-v7:21.0.2'
}

最佳答案

你可以改变

compile 'com.google.android.gms:play-services:6.1.+'

liteCompile 'com.google.android.gms:play-services:6.1.+'

这将仅包含您的精简版的播放服务库。

但您还没有完成,因为现在您的应用程序中用于创建 AdView 和来自播放服务库的相关类的代码在您创建专业版时将不会编译。

我在类似情况下(使用计费库)的解决方案是将所有引用排除库和相关类的代码移动到一个源文件中,该源文件也仅使用精简版构建,然后提供一个虚拟实现对于不引用库的专业版。

例如,创建两个 flavor-specific src 目录,每个目录中都有同名的 java 类:

src/lite/java/com/example/myapp/util/AdUtil.java
src/pro/java/com/example/myapp/util/AdUtil.java

在精简版的 AdUtil 中,您可以调用 google play 服务并返回一个 AdView:

View getAdView(...)
{
View adView = new AdView(...);
adView.setAdSize(...);
adView.setAdUnitId(...);
...
return adView;
}

在该类的专业版中,您可以只放置一个不引用播放服务库的虚拟实现:

View getAdView(...)
{
return null;
}

然后在您的主应用程序代码中,当您调用 AdUtil.getAdView() 时,您将获得一个可以放置在屏幕上的精简版 View 。在专业版中,您将得到一个空值,因此您可以跳过添加 View (但您可能已经在尝试首先创建广告 View 之前检查您是专业版还是精简版)。

关于android - 有和没有广告的多种构建风格(新的谷歌开发者政策),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33821068/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com