HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
1209
クリadmobによる広告表示23未解決


クリ

リンク

2015/12/9(Wed) 19:14:12|NO.73531

HSP3dishでAndroidアプリを作り、無事動いたので次は広告を入れてみようと試しているのですが、いきなり難しくなって行き詰まっています。
http://www.onionsoft.net/hsp/v33/doclib/hsp3dish_ndk.htm#ADMOB
↑ここを見ながら進めているのですが、adMobアカウントを作成しパブリッシャーIDを取得したまではいいのですが、その後のAdMob SDKが見つかりません。(既に無くなっている?)
「libsフォルダにAdMob SDKのjarファイルをコピー」と書かれてますが、何か代わりのファイルがあるんでしょうか?

そして「AdMob表示スクリプトの追加」からは完全に置いてかれてまして、

「AdMobを有効にする場合は、
devcontrol "AdMob" ; AdMobを有効にする
をスクリプトに記述してください。」

と書かれてますが、記述するのはHSPのスクリプトなのでしょうか?どこに記述するんでしょうか?
ここからはjavaの知識が必要になってくるんでしょうか?
初心者でして、何かアドバイスをいただけると助かります。



この記事に返信する


窓月らら

リンク

2015/12/9(Wed) 21:04:33|NO.73535

その情報は古いと思います。
最新の HSP 3.5β2 に同梱されている「HSP3Dish android(NDK)版プログラミングガイド」
を読んでください。

SDK Manager.exe を実行して Google Play services をインストールしてください。
(既にチェックが入ってインストール済なら不要です)

devcontrol "AdMob" は、HSPのほうに書きます。
これを実行したタイミングで広告が表示されるようになります。



窓月らら

リンク

2015/12/9(Wed) 21:18:46|NO.73536

あ、Android Support Library も必要だった。
最新のマニュアルのとおりにやれば、うまくいきますよ。
古いマニュアルの手順はもう使えなくなってるので無視してください。



クリ

リンク

2015/12/10(Thu) 09:02:41|NO.73542

返信ありがとうございます。

「Google Play Services」「Android Support Library」の最新版をインストールして、
「AdMobのセットアップ」も行い、android-19も利用可能な状態でプロジェクトを作成し、ユニットIDの登録をして、HSPにスクリプトも記述しました。
しかしビルドの段階でやはりエラーが出てしまうようです。

adView.setAdUnitId("ca-app-pub-???????????????????????????");
は????の部分をユニットIDの数字に変えればいいだけですよね?



-compile:
[javac] Compiling 5 source files to C:\android\admob\bin\classes
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:419: class、interface、または enum がありません。
[javac] private static AdView adView;
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:420: class、interface、または enum がありません。
[javac] private static AdRequest.Builder _request;
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:421: class、interface、または enum がありません。
[javac] private static PopupWindow popUp;
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:422: class、interface、または enum がありません。
[javac] private static HspActivity _activity;
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:423: class、interface、または enum がありません。
[javac] private static LinearLayout layout;
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:424: class、interface、または enum がありません。
[javac] private static LinearLayout mainLayout;
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:425: class、interface、または enum がありません。
[javac] private static boolean adsinited = false;
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:426: class、interface、または enum がありません。
[javac] private static int disp_width = 0;
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:427: class、interface、または enum がありません。
[javac] private static int disp_height = 0;
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:429: class、interface、または enum がありません。
[javac] public void onCreate(Bundle savedInstanceState) {
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:433: class、interface、または enum がありません。
[javac] _activity = this;
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:435: class、interface、または enum がありません。
[javac] WindowManager windowmanager = (WindowManager)getSystemService(WINDOW_SERVICE);
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:436: class、interface、または enum がありません。
[javac] Display disp = windowmanager.getDefaultDisplay();
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:437: class、interface、または enum がありません。
[javac] disp_width = disp.getWidth();
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:438: class、interface、または enum がありません。
[javac] disp_height = disp.getHeight();
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:439: class、interface、または enum がありません。
[javac] Log.i("HspActivity","size"+disp_width+"x"+disp_height);
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:442: class、interface、または enum がありません。
[javac] adView = new AdView(_activity);
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:443: class、interface、または enum がありません。
[javac] adView.setAdUnitId("ca-app-pub-4507773883016949/8762687712");
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:444: class、interface、または enum がありません。
[javac] adView.setAdSize(AdSize.BANNER);
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:446: class、interface、または enum がありません。
[javac] if(adView!=null) {
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:449: class、interface、または enum がありません。
[javac] _request = new AdRequest.Builder();
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:450: class、interface、または enum がありません。
[javac] _request.addTestDevice(AdRequest.DEVICE_ID_EMULATOR);
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:451: class、interface、または enum がありません。
[javac] adView.loadAd( _request.build() );
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:452: class、interface、または enum がありません。
[javac] }
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:454: class、interface、または enum がありません。
[javac] }
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:457: class、interface、または enum がありません。
[javac] public int callAdMob( int val ) {
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:460: class、interface、または enum がありません。
[javac] }
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:463: class、interface、または enum がありません。
[javac] _activity.runOnUiThread(new Runnable() {
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:465: class、interface、または enum がありません。
[javac] public void run() {
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:468: class、interface、または enum がありません。
[javac] popUp = new PopupWindow(_activity);
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:471: class、interface、または enum がありません。
[javac] popUp.setWidth(disp_width+4);
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:472: class、interface、または enum がありません。
[javac] popUp.setHeight(77);
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:473: class、interface、または enum がありません。
[javac] popUp.setWindowLayoutMode(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:474: class、interface、または enum がありません。
[javac] popUp.setClippingEnabled(false);
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:475: class、interface、または enum がありません。
[javac] layout = new LinearLayout(_activity);
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:476: class、interface、または enum がありません。
[javac] mainLayout = new LinearLayout(_activity);
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:478: class、interface、または enum がありません。
[javac] layout.setPadding(-5, -5, -5, -5);
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:479: class、interface、または enum がありません。
[javac] MarginLayoutParams params = new MarginLayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:480: class、interface、または enum がありません。
[javac] params.setMargins(0, 0, 0, 0);
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:481: class、interface、または enum がありません。
[javac] layout.setOrientation(LinearLayout.VERTICAL);
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:482: class、interface、または enum がありません。
[javac] layout.addView(adView, params);
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:483: class、interface、または enum がありません。
[javac] popUp.setContentView(layout);
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:484: class、interface、または enum がありません。
[javac] _activity.setContentView(mainLayout, params);
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:491: class、interface、または enum がありません。
[javac] Log.i("HspActivity","loadAd.");
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:493: class、interface、または enum がありません。
[javac] popUp.showAtLocation(mainLayout, Gravity.BOTTOM, 0, 0);
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:494: class、interface、または enum がありません。
[javac] popUp.update();
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:495: class、interface、または enum がありません。
[javac] }});
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:497: class、interface、または enum がありません。
[javac] } else {
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:499: class、interface、または enum がありません。
[javac] }
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:501: class、interface、または enum がありません。
[javac] }
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:505: class、interface、または enum がありません。
[javac] public void onDestroy() {
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:508: class、interface、または enum がありません。
[javac] }
[javac] ^
[javac] C:\android\admob\src\tv\hsp\HspActivity.java:510: class、interface、または enum がありません。
[javac] }
[javac] ^
[javac] エラー 53 個

BUILD FAILED
C:\android\android-sdk\tools\ant\build.xml:716: The following error occurred while executing this line:
C:\android\android-sdk\tools\ant\build.xml:730: Compile failed; see the compiler error output for details.

Total time: 15 seconds



kanamaru

リンク

2015/12/10(Thu) 12:41:54|NO.73543

それって、javaファイルが違うやつだと思います。
HspActivety.javaではなく、
HspActivetyAdMob.javaを使ってください。



クリ

リンク

2015/12/10(Thu) 13:17:50|NO.73544

HspActivetyAdMob.java はプロジェクトのフォルダの中にあるファイルでしょうか?
プロジェクト内の「src/tv/hsp/」にはHspActivety.java しか見つからないのですが。
プロジェクトを作る段階で何かが間違っているのでしょうか?
AdMobセットアップは行っていて「AdMobを使用する」 にちゃんとチェックが入っているのでプロジェクト自体には問題ないはずなんですが。
いやー難しい。



kanamaru

リンク

2015/12/10(Thu) 14:06:05|NO.73545

じゃあ、たぶん、hspのバージョンが低いんだと思います。
バージョンを3.4b2以上にしてください。
あるいは、admob対応hsp3dishが単体でダウンロードできるので、
それを導入してください。



クリ

リンク

2015/12/10(Thu) 14:13:25|NO.73546

早い返信ありがとうございます。
hspはhsp35betaを使っています。(というかそうでなければHSP helperにAdMobセットアップや「AdMobを使用する」が無い? )
通常ならばプロジェクト内の「src/tv/hsp/」の中にHspActivetyAdMob.javaが入っているという事でしょうか?



kanamaru

リンク

2015/12/10(Thu) 14:27:43|NO.73548

そうですね。
なんで入ってないんだろ。入ってないとadmob使えないのに。
最新版のhsp3dishを単体でダウンロードできるはずなので、
それをとりあえず入れればいいかと。
あるいは、該当ファイルだけどっかから入れられないかな?



kanamaru

リンク

2015/12/10(Thu) 14:34:23|NO.73549

最新版の公開サイトのコメントにヒントがないか探して見たところ、
勘違いをしていたようです。
hspactivety.javaにhspactivetyadmob.javaは統合したみたいですね。
3.4b2使っているのできづきませんでした。
で、コメントで上がっていた解決法は、
hspactivety.javaの
// for admob
という行の直前の波カッコを消せばいいそうです



窓月らら

リンク

2015/12/10(Thu) 19:23:27|NO.73552

あ、忘れてました・・・そういえば HSP3.5β2 はAdMob表示に不具合があった気がします。
次のバージョンで修正されるはずですけど。

なので、暫定的に以下の方法を使ってください。

1) HSP3.5β1 でAdMobを使用するプロジェクトを作ります。
または、3.5β1に同梱されている
\android\hspproj\src\tv\hsp\HspActivityAdMob.java
を現在のプロジェクトの
\src\tv\hsp\HspActivity.java
に上書きコピーしてください(コピーしてから HspActivity.java にリネーム)

2) このファイルの該当個所をご自身のユニットIDに書き換えます。

3) HSP3Dish helper で「クリーン」を実行します。

以上を行ってから、ビルドしてみてください。



窓月らら

リンク

2015/12/10(Thu) 19:56:38|NO.73554

ただし、上記の方法を使うと3.5β2で追加された
ダイアログや通信関連が使えないので注意。
(手動でHspActivity.javaを修正すれば使えますけど)



クリ

リンク

2015/12/15(Tue) 18:13:46|NO.73617

遅くなりましたが返信ありがとうございます。
無事ビルドも成功したのですが、広告の部分が真っ黒で何も表示されません。
ゲーム正常に起動します。
しかしバナーを押しても反応はありません。広告が表示されるであろう部分が黒いだけです。
これはadmob側の設定がおかしいんでしょうか?

あと
//adView = new AdView(_activity, AdSize.BANNER, "publisherID");
の "publisherID" の部分は変えなくていいんでしょうか?



クリ

リンク

2015/12/15(Tue) 21:43:44|NO.73619

もしかしてアプリを作って間もないから広告が無いという事なんでしょうか?
ゲームをインストールした人が増えれば黒かったところに勝手に広告が載るのでしょうか?


それと追加で質問させてください。
hsp3dishでインタースティシャル広告を利用する事はできますか?
admobでバナー広告ではなくインタースティシャル広告を選んでも、HSPではバナー広告になってしまいます。
インタースティシャル広告を出せた場合、画面に大きく出た広告を消せるようにしなくちゃいけないと思うんですが、hspのスクリプトにdevcontrol "AdMob"を記述したらもう広告はずっと出っぱなしですよね?
AdMobを無効にする というスクリプトはあるのでしょうか?



クリ

リンク

2015/12/16(Wed) 00:17:17|NO.73621

AdMobを消す方法はこの掲示板に載っているのを見つけ解決しました。
インタースティシャル広告が利用可能か分かる方、それと広告部分が黒い原因に思い当たる節がある方、是非回答ください。



窓月らら

リンク

2015/12/16(Wed) 04:47:09|NO.73623

> 無事ビルドも成功したのですが、広告の部分が真っ黒で何も表示されません。

特定の環境で表示されないことがあるようです。
具体的には スマホ(5インチ) フルHD(1920x1080) だと起こるかもしれない。
ただ手持ちの機種ではないので詳細な確認ができていません。
もしかしたら、お手持ちの機種がこの条件に引っかかってるのかもしれません。

マニュアルには
> 現在のコードでは、画面下に縦は75ドット、横は画面いっぱいまでバナーの領域を確保しています。
とあるので、縦が足りないケースがあるんじゃないかと疑っているのですが
いまのところテストができていないので確信は無いです。
試しに popUp.setHeight(256); とかに変更してみてどうでしょう?

> //adView = new AdView(_activity, AdSize.BANNER, "publisherID");

ここはコメントのまま変える必要はありません。



窓月らら

リンク

2015/12/16(Wed) 04:56:29|NO.73624

> もしかしてアプリを作って間もないから広告が無いという事なんでしょうか?
> ゲームをインストールした人が増えれば黒かったところに勝手に広告が載るのでしょうか?

ユニットIDを取得した直後は有効にならないことがあるようですが、
数時間も経っていれば表示されます。アプリを公開しているかどうかは無関係です。

追加のご質問についてはバナーしか試してないので、他の方の回答に委ねます。



窓月らら

リンク

2015/12/16(Wed) 05:33:21|NO.73625

あとAdMobの表示には AndroidManifest.xml の以下の2行が必須です。
(手を加えていなければ最初から書かれてると思いますが。)

<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>



クリ

リンク

2015/12/16(Wed) 13:16:26|NO.73627

返信ありがとうございます。
popUp.setHeight(256); に書き換えてみましたが、バナーのサイズが変わりませんでした。

devcontrol "AdMob" は間違い無く機能してると思うんですが、肝心のバナーのリンク先が無く、バナーの部分が黒い(半透明)だけで機能していません。
試しに("ca-app-pub-???????????????????????????"); の???にユニットIDを記述せずに、何も数字を入れないで実行してみたんですが、今僕がなっている状態と同じようにバナーの部分が黒く押しても反応がありませんでした。
つまり現在の状態はユニットIDを記述しているにも関わらず、何も記述していないのと同じ状態になっているという事だと思うんです。

popUp.setHeight(77);の数字を変えてもサイズが変わらなかったのでHspActivity.javaが機能してないのかと思ったんですが
http://hsp.tv/play/pforum.php?mode=all&num=73137
ここで見たadmobを非表示にするスクリプトをHspActivity.javaに書き加えたらちゃんと消えるようになったのでHspActivity.javaは機能していると思います。


<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
この二行も確認しました。

あと考えられる原因はユニットIDが間違っているとかだと思うんですが、何度も確認しています。
二つの違う機種でアプリを試していますがどちらも同じ状態です。


通常なら「admobからユニットIDを所得し、HspActivity.javaにユニットIDを記述して、hspのスクリプトにdevcontrol "AdMob" を記述してapkファイルを作ってandroidで実行したら、画面の下にバナー広告が表示され押したら広告のリンク先に飛ぶ」で間違いないですよね



クリ

リンク

2015/12/16(Wed) 14:15:39|NO.73628

すいません、似たような質問を見つけました。
http://hsp.tv/play/pforum.php?mode=pastwch&num=62208
おそらくこの方と同じ状態です。
この方は自己解決したようなので、一日以上待ってみようと思います。



クリ

リンク

2015/12/21(Mon) 15:53:00|NO.73709

やはり数日経っても広告が表示されませんでした。
あれからまたいくつか疑問に思った事があるのでいくつか質問させてください。

hsp3dish helper1.2でDeviceモニターを実行しようとしたところ、黒い画面に

Create Process failed
[3] 指定されたパスが見つかりません。

Create Process failed
[3] 指定されたパスが見つかりません。

と出て、その後にmonitorという画面にfailed to creat the java Virtual machine と表示され、そのまま何も実行されません。
今androidにデータ通信用のusbケーブルをつないでcmd.exeでアプリをインストールしてアプリをテストしています。
アプリ自体は正常に動くのですが、もしかしてこのエラーが原因で広告が表示されてないという事はあるでしょうか?
_request.addTestDevice(AdRequest.DEVICE_ID_EMULATOR);
のカッコの中にandroid端末情報に表示されているIMEIの数字列を記述しています。

ちなみに広告は表示されていませんが、admobの自分のページを見てみると広告の表示回数はカウントされていて、正常に動いてるようです。
ただ広告が何も表示されていないのでクリック数は0です。バナーを押しても何も反応しません。

なにかアドバイスを頂けると助かります。



skyblue

リンク

2015/12/21(Mon) 18:31:00|NO.73711

>_request.addTestDevice(AdRequest.DEVICE_ID_EMULATOR);
>のカッコの中にandroid端末情報に表示されているIMEIの数字列を記述しています。
変更してはいけないところな気がします。



クリ

リンク

2015/12/21(Mon) 18:41:08|NO.73712

HSP3Dish android(NDK)版プログラミングガイドにデバイスIDを記入する必要があると書いてあったので試してみました。
変更してもしないでも今と同じ状態でした。


ちなみここ最近でadmobの広告表示を成功されてる方はいますでしょうか?



窓月らら

リンク

2015/12/23(Wed) 16:43:36|NO.73753

うちでは表示できてますが、ちょっと1点心当たりが。
クリさんがテストに使用してる端末はスマホでしょうか?
もしそうであれば、Wi-Fiで繋いでみてどうか確認してみてください。



ONION software Copyright 1997-2021(c) All rights reserved.