【问题标题】:Exclude admob jar from paid version从付费版本中排除 admob jar
【发布时间】:2013-03-28 21:10:24
【问题描述】:

我正在开发一个免费和付费版本的应用程序。我目前将其设置为一个“android 库项目”和两个常规的 android 项目,它们都引用该库。

我的应用程序在竞争中的一个好处是 apk 的大小非常小。 我也希望尽可能小,尤其是付费版本。

那么我怎样才能在库项目中保留一个公共源,并且只在我的应用程序的免费版本中包含 admob jar?

我发现answer 提到包装器是一种可能性。但它并未具体说明您将如何实际实施该解决方案。

【问题讨论】:

  • 我需要一个答案。并且该答案链接本质上是说要放置 if(LITE){show add} else {hide add} 而不是从实际编译的产品中删除 jar 文件。即使广告被禁用,一些 android 应用程序也不会存储广告的 jar 文件。因此,我无法将我的付费版本应用提交到某些应用商店。

标签: android admob


【解决方案1】:

当我弄清楚时答案很简单。

在免费版本中,您只需使用还显示广告的活动来扩展您的活动。现在只在支持的广告中包含 admob 的 jar 文件。你已经准备好了。

public class AdNanoMusicActivity extends NanoMusicActivity {

private AdView adView;

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

    if (!getResources().getBoolean(R.bool.paid)) {
        // Create the adView
        adView = new AdView(this, AdSize.BANNER, "a1500167a6bde8a");

        // Lookup your LinearLayout assuming it's been given
        // the attribute android:id="@+id/mainLayout"
        LinearLayout layout = (LinearLayout)findViewById(R.id.mainLayout);

        // Add the adView to it
        layout.addView(adView,0);

        // Initiate a generic request to load it with an ad
        AdRequest adRequest = new AdRequest();
        adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
        adView.loadAd(adRequest);
    }

}

@Override
public void onDestroy() {
    if (adView != null) {
        adView.destroy();
    }
    super.onDestroy();
}
}

AdNanoMusicActivity 扩展了库项目中的 NanoMusicActivity。现在您只需要在应该使用广告的项目中包含 jar 文件。我想当我再次查看它时,现在不需要 R.bool.paid。

【讨论】:

  • 嗨。我也有同样的问题。你能解释一下你是怎么做到的吗?您的活动在图书馆项目中,所以您还必须包含 jar 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-09
  • 1970-01-01
  • 2016-10-16
相关资源
最近更新 更多