0
Thumbsup

いい質問だ

1

Thumbsdown

うーん

Android Admobモジュールの実装について

ns.penchan
ns.penchan 10

投稿日:2012-12-12 19:40:20

環境:
OSX10.8.2, Windows7 x86
Titanium SDK 2.1.4
Android SDK 4.2(API17), 2.3.3(API10), 2.2(API8) installed
Android SDK Tools(rev.21), SDK Platform-tools(rev.16), All Extras installed
ti.admob-iphone-1.3-android-2.0.1 module

いつもお世話になっております。iPhoneアプリを、Android に移植中に苦戦しております。
Admobモジュールは、iPhoneではうまく動作していますが、Android では、実機、エミュともにアプリの起動すらできない状態です。
起動すると、エラーで止まってしまいます。

[ERROR] Error generating R.java from manifest
[ERROR] /Users/******/Documents/Titanium_Studio_Workspace/testModule/build/android/AndroidManifest.xml:19: error: Error: String types not allowed (at 'configChanges' with value 'keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize').

検索して、tiapp.xml を編集すればよいことらしいと見当をつけましたが、
<android xmlns:android="http://schemas.android.com/apk/res/android">
    <tool-api-level>13</tool-api-level>
</android>

としても、アプリの起動ができません。

Traceback (most recent call last):
  File "/Users/******Library/Application Support/Titanium/mobilesdk/osx/2.1.4.GA/android/builder.py", line 2240, in <module>
    s = Builder(project_name,sdk_dir,project_dir,template_dir,app_id)
  File "/Users/*******/Library/Application Support/Titanium/mobilesdk/osx/2.1.4.GA/android/builder.py", line 253, in __init__
    self.sdk = AndroidSDK(sdk, self.tool_api_level)
  File "/Users/*******/Library/Application Support/Titanium/mobilesdk/osx/2.1.4.GA/android/androidsdk.py", line 49, in __init__
    self.set_api_level(api_level)
  File "/Users/*******/Library/Application Support/Titanium/mobilesdk/osx/2.1.4.GA/android/androidsdk.py", line 53, in set_api_level
    self.find_platform_dir()
  File "/Users/******/Library/Application Support/Titanium/mobilesdk/osx/2.1.4.GA/android/androidsdk.py", line 127, in find_platform_dir
    old_style_dir = os.path.join(self.android_sdk, 'platforms', android_api_levels[api_level])
KeyError: 13

13のところを他の数字にしても同様でした。私の環境では、どのように書き換えればよいでしょうか?
あきらめて、モジュールのアップデートを待つべきでしょうか?

Windows環境でも同様でした。Admobモジュールの実装に成功されている方、アドバイスをよろしくお願いします。



回答

yagi_
yagi_
2540
Tcad_icon Tcmd_icon Tce_icon

Thumbsup

いい回答

0

Thumbsdown

うーん

エラーメッセージですが、$ANDROID_SDK/platforms/android-13が存在しないのでエラーになっています。

AdMobの使い方ですが、マニュアルによれば手動でtiapp.xmlに

<android>
    <tool-api-level>14</tool-api-level>
</android>

と記述するようにと書いてありました。なので、Android SDKのディレクトリからplatforms/android-14が存在するかどうか確認してください。なければ、Android SDK Managerを起動して、API 14をインストールしてみてください。それから1.0の方を使う場合は

<android>
    <tool-api-level>14</tool-api-level>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
</android>

を追記するとドキュメントに記載がありました。おそらくACCESSFINELOCATIONだけで大丈夫なはずです。

あと、ドキュメントが間違っていて、JavaScriptについてはexampleの方が正しいようでした。下のように記述して動作しました。

  var Admob = require('ti.admob');
  var adMobView = Admob.createView({
    publisherId:'AdMobのPublisher ID',
    testing:true,//本番ではfalse
    top:0,
    left:0,
    right:0,
    bottom: 0,
    adBackgroundColor:"FF8800",
    backgroundColorTop: "738000",
    borderColor: "#000000",
    textColor: "#000000",
    urlColor: "#00FF00",
    linkColor: "#0000FF",
    primaryTextColor: "blue",
    secondaryTextColor: "green"
  });

最初は広告が出なかったのですがcleanして再挑戦したら出ました。


ns.penchan
ns.penchan
10

Thumbsup

いい回答

0

Thumbsdown

うーん

すばらしい!
yagi様のおっしゃられた通り、API14をインストールすると、すんなりアプリの起動、admobの表示ができました。ありがとうございます。
こんな初歩的なことに気づかなかったのは恥ずかしい限りです。
また、こんな質問にも丁寧に答えてくださったyagi
様にお礼を申します。
Titaniumがもっと好きになりました。年内のAndroid版の公開を目指して、さらに精進いたします。


ログインすると回答することができます。