web-dev-qa-db-fra.com

ResourceType pour l'index d'entrée de ressource dépasse le type entryCount

J'utilise Android Studio 3.2. Lorsque je nettoie/reconstruis le projet, je vois ces avertissements dans la fenêtre de l'outil 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)

Comme vous pouvez le voir, aucun fichier ne doit être extrait. J'ai également essayé Google et j'ai vu this et this questions, mais je n'ai rien trouvé qui puisse m'aider. Comment puis-je résoudre ce problème?

8
hasanghaforian

Je pense qu'Itamar pointe du doigt "... le compilateur ne lie pas correctement les ressources de ce package à votre application car elles sont destinées à différentes versions Android SDK Android ..."

J'ai eu le même problème, mais en suivant l'indice AS, j'ai trouvé la solution ici: https://chris.banes.me/2016/02/25/appcompat-vector/#enabling-the-flag

capture d'écran androidstudio

1
FabFab

Pour mieux comprendre votre problème, prenez votre fichier APK compilé. Il contient un fichier appelé "resources.arsc". Il s'agit d'un fichier de ressources compressé et compilé. Pour pouvoir le lire, exécutez:

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

Alors maintenant, vous aurez un fichier texte avec une description de toutes les ressources de votre application. Il contient de nombreux segments ressemblant à ceci:

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

Dans cette section, vous pouvez voir qu'il y a 2 configurations et 5 entrées attendues. Ce que vous devez faire pour avoir une idée de ce qui se passe est de regarder par exemple:

ressource 0x0101053d

Cela apparaît dans votre journal et voyez où se trouve la section. Il devrait vous donner une idée du groupe de ressources dans votre application qui le provoque. Je suppose que vous établissez une liaison avec un package qui est très ancien et que le compilateur ne relie pas correctement les ressources de ce package à votre application, car elles sont destinées à différentes versions de Android SDK Android par exemple. Je suis désolé de ne pas pouvoir vous aider davantage.

Si vous avez plus d'informations, laissez un commentaire pour cette réponse et je vais essayer de vous aider.

3
Itamar Kerbel