2012-07-29 94 views
2

我開發了應用程序的免費和付費版本。我有它目前設置爲一個「android庫項目」和兩個常規的android項目都引用該庫。從付費版本中排除admob jar

我的應用程序在競爭中的一個好處是apk的大小非常小。 我也想保持儘可能小的尺寸,尤其是付費版本。

那麼,我該如何在庫項目中保留一個常見的源代碼,並且只在應用程序的免費版本中包含admob jar?

我發現answer提到一個包裝將是一種可能性。但它沒有說明你實際上將如何實施解決方案。

+0

我需要一個答案。而這個答案鏈接本質上是說把一個if(LITE){show add} else {hide add}不從實際編譯的產品中移除jar文件。某些android應用商店即使禁用了廣告,也不會展示廣告的jar文件。因此,我無法將我的付費版本應用程序提交給一些應用程序商店。 – 2012-10-24 03:01:54

回答

0

當我找到答案時,答案很簡單。

在免費版本中,您只需將活動擴展爲也展示廣告的活動。現在,只需在廣告支持人員中包含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。

+0

嗨。我也有同樣的問題。你能解釋一下你是如何做到的?你的活動在圖書館項目中,所以你是否還需要包含jar? – gcb 2013-03-25 22:49:36

+0

我用一些可能幫助你的代碼更新了awnser。 – Jake 2013-03-28 13:10:56