web-dev-qa-db-ja.com

リソースエントリのResourceTypeがタイプentryCountを超えています

私が使う Android Studio 3.2。プロジェクトをクリーン/リビルドすると、buildツールウィンドウに次の警告が表示されます。

W/ResourceType( 6139): For resource 0x0101053d, entry index(1341) is beyond type entryCount(1155)
W/ResourceType( 6139): For resource 0x0101053e, entry index(1342) is beyond type entryCount(1155)
W/ResourceType( 6139): For resource 0x0101053b, entry index(1339) is beyond type entryCount(1155)
W/ResourceType( 6139): For resource 0x0101053c, entry index(1340) is beyond type entryCount(1155)

ご覧のとおり、チェックアウトするファイルへのアドレスはありません。私もGoogleを試して thisthis の質問を見ましたが、私を助けるものを見つけることができませんでした。この問題を解決するにはどうすればよいですか?

8
hasanghaforian

Itamarは、「...コンパイラは、そのパッケージのリソースをアプリに適切にリンクしていません。それらは、異なるAndroid SDKバージョン...を対象としているためです。」

私は同じ問題を抱えていましたが、ASのヒントに従って、ここで解決策を見つけました: https://chris.banes.me/2016/02/25/appcompat-vector/#enabling-the-flag

androidstudioスクリーンショット

1
FabFab

問題をよりよく理解するには、コンパイルしたAPKを使用してください。その中には、「resources.arsc」というファイルがあります。これは、圧縮およびコンパイルされたリソースファイルです。それを読むことができるようにするには:

aapt dump --values resources myAPK.apk > c:\my-res.txt 

これで、アプリ内のすべてのリソースの説明を含むテキストファイルが作成されます。その中には、次のようなセグメントがたくさんあります。

type 3 configCount=2 entryCount=5
  spec resource 0x7f040000 com.LTS.NVMS7000:bool/abc_action_bar_embed_tabs: flags=0x00000080
  spec resource 0x7f040001 com.LTS.NVMS7000:bool/abc_allow_stacked_button_bar: flags=0x00000000
  spec resource 0x7f040002 com.LTS.NVMS7000:bool/abc_config_actionMenuItemAllCaps: flags=0x00000000
  spec resource 0x7f040003 com.LTS.NVMS7000:bool/abc_config_closeDialogWhenTouchOutside: flags=0x00000000
  spec resource 0x7f040004 com.LTS.NVMS7000:bool/abc_config_showMenuShortcutsWhenKeyboardPresent: flags=0x00000000
  config (default):
    resource 0x7f040000 com.LTS.NVMS7000:bool/abc_action_bar_embed_tabs: t=0x12 d=0xffffffff (s=0x0008 r=0x00)
      (color) #ffffffff
    resource 0x7f040001 com.LTS.NVMS7000:bool/abc_allow_stacked_button_bar: t=0x12 d=0x00000000 (s=0x0008 r=0x00)
      (color) #00000000
    resource 0x7f040002 com.LTS.NVMS7000:bool/abc_config_actionMenuItemAllCaps: t=0x12 d=0xffffffff (s=0x0008 r=0x00)
      (color) #ffffffff
    resource 0x7f040003 com.LTS.NVMS7000:bool/abc_config_closeDialogWhenTouchOutside: t=0x12 d=0xffffffff (s=0x0008 r=0x00)
      (color) #ffffffff
    resource 0x7f040004 com.LTS.NVMS7000:bool/abc_config_showMenuShortcutsWhenKeyboardPresent: t=0x12 d=0x00000000 (s=0x0008 r=0x00)
      (color) #00000000
  config port:
    resource 0x7f040000 com.LTS.NVMS7000:bool/abc_action_bar_embed_tabs: t=0x12 d=0x00000000 (s=0x0008 r=0x00)
      (color) #00000000

このセクションでは、2つの構成と5つのエントリが予期されていることがわかります。何が起こっているかについてのヒントを得るためにあなたがすべきことは、例えば以下を見ることです:

リソース0x0101053d

これはログに表示され、セクションのどこにあるかを確認します。これにより、アプリのどのリソースグループがそれを引き起こしているのかについてのヒントが得られます。私はあなたが非常に古いパッケージとリンクしていると思います、そしてそれらが異なるAndroid SDKバージョンなど)を対象としているため、コンパイラはそのパッケージのリソースをアプリに適切にリンクしていません。これ以上お役に立てず申し訳ありません。

詳しい情報がありましたら、この回答にコメントを残してください。お手伝いします。

3
Itamar Kerbel