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.properties(default.propertiesを変更することで機能しました14)以下にファイル:
# Project target.
target=Android-14
そして、私のSDK ManagerにSDK Platform Android 4.0-Revision 14がインストールされています。
SDKプラットフォームAndroid 3.2-リビジョン13でも動作するはずです。そのため、project.propertiesターゲットをAndroid-13その場合。基本的に、SDKリビジョンが13以上であること、およびそのSDKがSDKマネージャーにインストールされていることと、それを指すdefault/project.propertiesのプロジェクトターゲットを確認する必要があります。
簡単な答え:上記の設定変更は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に更新されていないと思います。
簡単な解決策:(そして、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
乾杯!
Eclipseを使用している場合は、簡単な方法があります。左側の[パッケージエクスプローラー]ペインでプロジェクトフォルダーを右クリックし、[プロパティ]-> Android->および[プロジェクトビルドターゲット」リストは、API 13以降をチェックオフします。
注:これは、とにかく自動生成されるproject.properties
を編集するのと同じ効果です。
これにより、以前は認識されていなかった用語を含むAndroid 3.2 SDKに対してプロジェクトがビルドされます。
Manifest.xmlでAndroid:minSdkVersion
とtargetSdkVersion
の値を同じにしておくことができます。
ただし、targetSdkVersion
をAPI 12以下に設定しない場合(または設定しない場合)、警告が表示されます Androidシステムは、Android:configChanges
値screenSize
およびsmallestScreenSize
(API 13で導入された)が考慮されているため、破棄して再起動することを許可されると想定しますアクティビティ。これを回避したい場合は、他の<activity>
タグ(おそらくこれまでkeyboard|keyboardHidden|orientation
しか持っていなかった)にそれらの用語を含める必要があります。
ただし、アプリケーションがAPIレベル12以下をターゲットとする場合、アクティビティは常にこの設定変更自体を処理します(Android 3.2以上のデバイスで実行している場合でも、この設定変更はアクティビティを再起動しません)。
引用は here からです。
私も同じ問題を抱えていたので、ここに来ました。
サンプルコードを 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を使用した場合(これは私が書いた)、動作するはずです。
簡単な解決策:「project.properties」ファイルを21に変更します
# Project target.
target=Android-21