6: 2016-07-21 (木) 07:54:18 njf |
現: 2019-04-25 (木) 19:27:54 njf |
| まず、通常のAndroidアプリで広告を表示できないとANEを作成することはできません。ここではAndroidアプリでAdmobの広告を表示し、そこから必要なファイルを抜き出す方法を紹介します。 | | まず、通常のAndroidアプリで広告を表示できないとANEを作成することはできません。ここではAndroidアプリでAdmobの広告を表示し、そこから必要なファイルを抜き出す方法を紹介します。 |
| | | |
- | こちらの内容は「[[AndroidでのANEの作成1_Android側の作成]]」にそった方法で行いますので、そちらも参考にして下さい。 | + | こちらの内容は「[[AndroidでのANEの作成/Android側の作成]]」にそった方法で行いますので、そちらも参考にして下さい。 |
| | | |
| また、こちらではAdmobの広告IDを使いますので、あらかじめテスト用のAndroidのアプリの登録とそのID、バナー広告用のID、インタースティシャル広告のIDを用意しておいて下さい。 | | また、こちらではAdmobの広告IDを使いますので、あらかじめテスト用のAndroidのアプリの登録とそのID、バナー広告用のID、インタースティシャル広告のIDを用意しておいて下さい。 |
| Finishボタンを押せばライブラリが作成されます。 | | Finishボタンを押せばライブラリが作成されます。 |
| | | |
- | *Google Play Servicesの追加 [#ua4e58f1] | + | *Google Play Servicesの追加 (現在は不要)[#ua4e58f1] |
| | | |
| + | &font(Red){----アップデートにより、このセクションの手順は意味がなくなったので飛ばしてください-----&br;}; |
| (この部分については[[公式ページ:https://developers.google.com/mobile-ads-sdk/docs/admob/android/quick-start?hl=ja]]も参考にして下さい。) | | (この部分については[[公式ページ:https://developers.google.com/mobile-ads-sdk/docs/admob/android/quick-start?hl=ja]]も参考にして下さい。) |
| | | |
| といった感じで表示されるので探してみて下さい。 | | といった感じで表示されるので探してみて下さい。 |
| | | |
- | Admobは開発者が自ら広告をタップするのを禁止しています。 | + | Admobは開発者が自ら広告をタップしたり、開発時に実際の広告を表示するのを禁止しています。 |
- | 現実的に一度や二度ほどタップしたからいきなり問題が生じることはありませんが、何度も誤タップしてしまうとなんらかのペナルティがある可能性があります。 | + | 現実的には少々テストで表示したり、一度や二度ほどタップしたからいきなり問題が生じることはありませんが、何度も表示したり誤タップしてしまうとアカウント停止などのなんらかのペナルティがある可能性があります。 |
- | テスト時にうっかりタップしないようにするため、このようにテスト用デバイスを設定することをお勧めします。 | + | そのため、テスト時にはこのようにテスト用デバイスを設定することをお勧めします。 |
| また、その時のためにこのようにAdRequestを作成するメソッドは別に用意しておいた方が、一カ所直せば良いので便利です。 | | また、その時のためにこのようにAdRequestを作成するメソッドは別に用意しておいた方が、一カ所直せば良いので便利です。 |
| | | |
| <uses-permission android:name="android.permission.INTERNET"/> | | <uses-permission android:name="android.permission.INTERNET"/> |
| <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> | | <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> |
| + | |
| + | 同じくAndroidManifest.xmlのapplicationタグの中に次を入れます。 |
| + | |
| + | <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" /> |
| + | |
| + | |
| | | |
| あとはonCreateメソッドにボタンを押したときの処理を入れます。 | | あとはonCreateメソッドにボタンを押したときの処理を入れます。 |
| super.onCreate(savedInstanceState); | | super.onCreate(savedInstanceState); |
| setContentView(R.layout.activity_main); | | setContentView(R.layout.activity_main); |
| + | |
| aneAdmob = new ANEAdmob(this); | | aneAdmob = new ANEAdmob(this); |
| + | |
| aneAdmob.setAppID(APP_ID); | | aneAdmob.setAppID(APP_ID); |
| aneAdmob.setBannerID(BANNER_ID); | | aneAdmob.setBannerID(BANNER_ID); |
| aneAdmob.setInterstitialID(INTER_ID); | | aneAdmob.setInterstitialID(INTER_ID); |
| + | |
| Button button = (Button) findViewById(R.id.showBannerBtn); | | Button button = (Button) findViewById(R.id.showBannerBtn); |
| + | |
| assert button != null; | | assert button != null; |
| button.setOnClickListener(new View.OnClickListener() { | | button.setOnClickListener(new View.OnClickListener() { |
| aneAdmob.showBanner(); | | aneAdmob.showBanner(); |
| } | | } |
| + | |
| } | | } |
| ); | | ); |
| + | |
| button = (Button) findViewById(R.id.hideBannerBtn); | | button = (Button) findViewById(R.id.hideBannerBtn); |
| + | |
| assert button != null; | | assert button != null; |
| button.setOnClickListener(new View.OnClickListener() { | | button.setOnClickListener(new View.OnClickListener() { |
| aneAdmob.hideBanner(); | | aneAdmob.hideBanner(); |
| } | | } |
| + | |
| } | | } |
| ); | | ); |
| button = (Button) findViewById(R.id.loadInterstitialBtn); | | button = (Button) findViewById(R.id.loadInterstitialBtn); |
| + | |
| assert button != null; | | assert button != null; |
| button.setOnClickListener(new View.OnClickListener() { | | button.setOnClickListener(new View.OnClickListener() { |
| aneAdmob.loadInterstitial(); | | aneAdmob.loadInterstitial(); |
| } | | } |
| + | |
| } | | } |
| ); | | ); |
| + | |
| button = (Button) findViewById(R.id.showInterstitialBtn); | | button = (Button) findViewById(R.id.showInterstitialBtn); |
| + | |
| assert button != null; | | assert button != null; |
| button.setOnClickListener(new View.OnClickListener() { | | button.setOnClickListener(new View.OnClickListener() { |
| aneAdmob.showInterstitial(); | | aneAdmob.showInterstitial(); |
| } | | } |
| + | |
| } | | } |
| ); | | ); |
| + | |
| } | | } |
| | | |
| Android上で問題なく実行されたら、ANEにするための処理を入れます。 | | Android上で問題なく実行されたら、ANEにするための処理を入れます。 |
| | | |
- | [[こちらを参考に:http://njf.jp/cms/modules/xpwiki/?Android%E3%81%A7%E3%81%AEANE%E3%81%AE%E4%BD%9C%E6%88%901_Android%E5%81%B4%E3%81%AE%E4%BD%9C%E6%88%90#a17e7947]]FlashRuntimeExtensions.jarをaneadmobの下のlibに配置します。 | + | [[こちらを参考に:http://njf.jp/cms/modules/xpwiki/?Android%E3%81%A7%E3%81%AEANE%E3%81%AE%E4%BD%9C%E6%88%90%2FAndroid%E5%81%B4%E3%81%AE%E4%BD%9C%E6%88%90#a17e7947]]FlashRuntimeExtensions.jarをaneadmobの下のlibに配置します。 |
| | | |
| 最終的にaneadmobのbuild.gradleのdependencies以下に次の一行が挿入されていればOKです。 | | 最終的にaneadmobのbuild.gradleのdependencies以下に次の一行が挿入されていればOKです。 |
| return result; | | return result; |
| } | | } |
| + | |
| @Override | | @Override |
| public void dispose() { | | public void dispose() { |
| + | |
| } | | } |
| }; | | }; |
| } | | } |
| | | |
- | 特に難しい部分はないはずです。分からない部分があれば「[[AndroidでのANEの作成1_Android側の作成]]」を参照してください。 | + | 特に難しい部分はないはずです。分からない部分があれば「[[AndroidでのANEの作成/Android側の作成]]」を参照してください。 |
| | | |
| 次にANEAdmobFREFunctionのcallメソッドです。 | | 次にANEAdmobFREFunctionのcallメソッドです。 |
| Log.w("njf.jp.aneadmob", "ANEAdmobFREFunction:can't parse : arg 1"); | | Log.w("njf.jp.aneadmob", "ANEAdmobFREFunction:can't parse : arg 1"); |
| } | | } |
| + | |
| if(aneAdmob == null){ | | if(aneAdmob == null){ |
| aneAdmob = new ANEAdmob(freContext.getActivity()); | | aneAdmob = new ANEAdmob(freContext.getActivity()); |
| } | | } |
| + | |
| if(method.equals("setAppID") && !prm.equals("")){ | | if(method.equals("setAppID") && !prm.equals("")){ |
| aneAdmob.setAppID(prm); | | aneAdmob.setAppID(prm); |
| | | |
| | | |
- | こちらも分からない部分があれば「[[AndroidでのANEの作成1_Android側の作成]]」を参照してください。 | + | こちらも分からない部分があれば「[[AndroidでのANEの作成/Android側の作成]]」を参照してください。 |
| | | |
| *jarファイルの取り出し [#re49287b] | | *jarファイルの取り出し [#re49287b] |
| | | |
- | jarファイルの取り出しについては、[[こちらの記事:http://njf.jp/cms/modules/xpwiki/?Android%E3%81%A7%E3%81%AEANE%E3%81%AE%E4%BD%9C%E6%88%901_Android%E5%81%B4%E3%81%AE%E4%BD%9C%E6%88%90#veeed4bc]]と同じです。 | + | jarファイルの取り出しについては、[[こちらの記事:http://njf.jp/cms/modules/xpwiki/?Android%E3%81%A7%E3%81%AEANE%E3%81%AE%E4%BD%9C%E6%88%90%2FAndroid%E5%81%B4%E3%81%AE%E4%BD%9C%E6%88%90#veeed4bc]]と同じです。 |
| | | |
| ツールバーの「Build->Rebuild Project」でビルドし直して、aneadmob-release.aarファイルを探し出し、zip解凍してください。必要なのは「classes.jar」のみです。 | | ツールバーの「Build->Rebuild Project」でビルドし直して、aneadmob-release.aarファイルを探し出し、zip解凍してください。必要なのは「classes.jar」のみです。 |
| | | |
| + | ---- |
| -[[AndroidでのAdmobのANEの作成]]にもどる | | -[[AndroidでのAdmobのANEの作成]]にもどる |
| -[[AndroidでのAdmobのANEの作成_swcの作成]]に進む | | -[[AndroidでのAdmobのANEの作成_swcの作成]]に進む |