2016-11-21 4 views
0

私はそこStackOverflow questionがこのメッセージに他の誰かであるが、答えは唯一それを無視する方法について説明し「構成によって変化するリソース」エラーは何を意味しますか? Androidのメーカー2.2.2で

Resources referenced from the manifest cannot vary by configuration

を言っAndroidManifest.xmlファイルにエラーが発生しています。私が知りたいのはという意味ですか?エラーに関連付けられている

ラインは

android:versionName="@string/appvername" 

エラーが何を意味し、どのように私は(単に無視しない)それを防ぐのですか?と言いますかこの文脈での「構成」とは何ですか?

+1

ツールを追加してみてください:ignore = "ManifestResource"? –

+0

'@ string/appvername'の定義はいくつですか? – nandsito

+0

@ string/appvernameの_how定義は何ですか?_すべてのロケールにはユニークな翻訳があるため、各言語に1つずつ。 (現在は2つですが、それ以上のものがあります) – user316117

答えて

2

ここでの「構成」とは何ですか?

the documentationを引用:

あなたが独立して、それらを維持できるように、あなたは常に、こうしたアプリケーションコードから画像や文字列などのリソースを外部化する必要があります。リソースを外部化することで、さまざまな言語や画面サイズなどの特定のデバイス設定をサポートする代替リソースを提供することもできます。これは、Android搭載デバイスがさまざまな設定で利用できるようになるにつれますます重要になります。異なる構成との互換性を提供するには、タイプと構成ごとにリソースをグループ化するさまざまなサブディレクトリを使用して、プロジェクトのres /ディレクトリにリソースを編成する必要があります。

したがって、構成には、どのリソースがロードされるかを制御するデバイス機能と状態が混在しています。たとえば、デバイスのロケール設定によって、使用可能な文字列リソースからどの文字列が使用されるかが決まります。

私が知りたいことは、それは何を意味していますか?

システムは設定に基づいてさまざまな値を処理できないため、マニフェストのすべての属性にリソースを取り込むことができません。

例えば、<activity>のJavaクラス名を変更することはできません。android:nameの文字列リソースを使用して、異なる画面サイズの異なるJavaクラスを使用することに注意してください。それは面白い概念ですが、Androidはそれをサポートするように設定されていません。

どのようにして(無視するだけでなく)防止しますか?

この場合、私はあなたがIDEのバグに遭遇していると思います。 android:versionNameは文字列リソースをサポートしている必要があります。文字列リソースはユーザーが使用する値であるため、文字列を変換する必要があります。したがって、the bug gets fixedまで<manifest>要素にtools:ignore="ManifestResource"を追加してください。

+0

facebook sdk、 http://stackoverflow.com/questions/ 35388688/android-facebook-app-id-error-in-values-ta-strings-xml-and-cant-able/35451711 @CommonsWareは常に、 – cwhsu

関連する問題