web-dev-qa-db-ja.com

Eclipse for AndroidのAdmobエラー:configChanges

Eclipseで、AndroidManifest.xmlのAndroid:configChanges行にエラーが表示されます。

<activity Android:name="com.google.ads.AdActivity"
              Android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"></activity>

エラーは次のとおりです。

error: Error: String types not allowed (at 'configChanges' with value 'keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize').

keyboard|keyboardHidden|orientationのみを残してもエラーはありませんが、コンパイラーは、ビルドしようとするときに残りの4つを要求します。

GoogleAdMobAdsSDK-4.3.1を使用しています。

何か案は?

編集: SDKのproject.propertiesdefault.propertiesを変更することで機能しました14)以下にファイル:

# Project target.
target=Android-14

そして、私のSDK ManagerSDK Platform Android 4.0-Revision 14がインストールされています。

SDKプラットフォームAndroid 3.2-リビジョン13でも動作するはずです。そのため、project.propertiesターゲットをAndroid-13その場合。基本的に、SDKリビジョンが13以上であること、およびそのSDKがSDKマネージャーにインストールされていることと、それを指すdefault/project.propertiesのプロジェクトターゲットを確認する必要があります。

131
Mark Cameron

簡単な答え:上記の設定変更はAndroid 2.1ではサポートされていません。こちらをご覧ください:

http://developer.Android.com/guide/topics/manifest/activity-element.html#config

例えばuiModeにはAPIレベル8が必要です。

AdMobの公式ドキュメントから:

要件

Android用のGoogle AdMob Ads SDKにはAndroid 1.5以降が必要です。 _Android SDKの最新のコピーがあり、少なくともAndroid v3.2に対してコンパイルしていることを確認してください(default.propertiesのターゲットをAndroid-13に設定)。

こちらをご覧ください: https://developers.google.com/admob/Android/quick-start

したがって、ツールのバージョンは少なくともバージョン13に更新されていないと思います。

74
HefferWolf

簡単な解決策:(そして、min-sdk値を変更する必要はありません!!)

ステップ1:「project.properties」ファイルを変更する

# Project target.
target=Android-13

ステップ2:Eclipseで

Project > Clean... > (select your project) > Clean projects selected below > OK

実際の例を使用した完全な説明については、このチュートリアルを使用してください http://www.monkeycoder.co.nz/Community/posts.php?topic=1121

乾杯!

86
Dax

Eclipseを使用している場合は、簡単な方法があります。左側の[パッケージエクスプローラー]ペインでプロジェクトフォルダーを右クリックし、[プロパティ]-> Android->および[プロジェクトビルドターゲット」リストは、API 13以降をチェックオフします。

注:これは、とにかく自動生成されるproject.propertiesを編集するのと同じ効果です。

これにより、以前は認識されていなかった用語を含むAndroid 3.2 SDKに対してプロジェクトがビルドされます。

Manifest.xmlでAndroid:minSdkVersiontargetSdkVersionの値を同じにしておくことができます。

ただし、targetSdkVersionをAPI 12以下に設定しない場合(または設定しない場合)、警告が表示されます Androidシステムは、Android:configChangesscreenSizeおよびsmallestScreenSize(API 13で導入された)が考慮されているため、破棄して再起動することを許可されると想定しますアクティビティ。これを回避したい場合は、他の<activity>タグ(おそらくこれまでkeyboard|keyboardHidden|orientationしか持っていなかった)にそれらの用語を含める必要があります。

ただし、アプリケーションがAPIレベル12以下をターゲットとする場合、アクティビティは常にこの設定変更自体を処理します(Android 3.2以上のデバイスで実行している場合でも、この設定変更はアクティビティを再起動しません)。

引用は here からです。

18
Tony Chan

私も同じ問題を抱えていたので、ここに来ました。
サンプルコードを https://developers.google.com/admob/Android/quick-start からダウンロードしましたが、上記のすべての回答にまだ問題があったため、同じadmob sdk、サンプルプロジェクトで提供します。ビルドjarファイルをやり直し、ターゲットをAndroid-15に変更し、使用するのと同じ行を使用しました。

<activity Android:name="com.google.ads.AdActivity" 
              Android:configChanges="keyboard|keyboardHidden|orientation"/>

そしてそれは動作します!

Android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|‌​screenSize|smallestScreenSizeを使用しましたか

それとももっと短い?ターゲットを13を超えて変更し、長いconfigChangesを使用した場合(これは私が書いた)、動作するはずです。

0

簡単な解決策:「project.properties」ファイルを21に変更します

# Project target.
target=Android-21
0
Said Erraoudy