ResourceType Для ресурса ресурсный индекс выходит за пределы типа entryCount - PullRequest
0 голосов
/ 15 октября 2018

Я использую 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 и увидел это и это вопросы, но я не смог найти ничего, что мне помогло бы.Как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Я думаю, что Итамар прав, указывая пальцем на «... компилятор неправильно связывает ресурсы этого пакета с вашим приложением, потому что они предназначены для разных версий Android SDK ...»

Iбыла та же проблема, но, следуя совету AS, я нашел решение здесь: https://chris.banes.me/2016/02/25/appcompat-vector/#enabling-the-flag

скриншот androidstudio

0 голосов
/ 17 октября 2018

Чтобы лучше понять вашу проблему, возьмите скомпилированный 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 ожидаемых записей.Чтобы получить подсказку о том, что происходит, вы должны взглянуть, например, на:

resource 0x0101053d

, который отображается в вашем журнале, и посмотрите, где находитсяраздел.Это должно дать вам подсказку о том, какая группа ресурсов в вашем приложении вызывает это.Я предполагаю, что вы связываетесь с пакетом, который очень стар, и поэтому компилятор не связывает ресурсы этого пакета должным образом с вашим приложением, потому что они предназначены для разных версий Android SDK, например.Извините, что больше ничего не могу поделать.

Если у вас есть дополнительная информация, оставьте комментарий к этому ответу, и я постараюсь помочь.

...