Я не могу найти папку R.java, она была переименована в версии 3.3?

Кажется, что ваша конфигурация использует опцию print для numpy.seterr :

>>> import numpy as np
>>> np.array([1])/0   #'warn' mode
__main__:1: RuntimeWarning: divide by zero encountered in divide
array([0])
>>> np.seterr(all='print')
{'over': 'warn', 'divide': 'warn', 'invalid': 'warn', 'under': 'ignore'}
>>> np.array([1])/0   #'print' mode
Warning: divide by zero encountered in divide
array([0])

Это означает, что предупреждение, которое вы видите, не является реальным предупреждением, но это всего лишь некоторые символы, напечатанные на stdout (см. документацию для seterr ). Если вы хотите его поймать, вы можете:

  1. Использовать numpy.seterr(all='raise'), который будет напрямую возбуждать исключение. Это, однако, изменяет поведение всех операций, поэтому это довольно большое изменение в поведении.
  2. Используйте numpy.seterr(all='warn'), который преобразует печатное предупреждение в реальное предупреждение, и вы сможете использовать выше, чтобы локализовать это изменение в поведении.

Как только у вас есть предупреждение, вы можете использовать модуль warnings для управления обработкой предупреждений:

>>> import warnings
>>> 
>>> warnings.filterwarnings('error')
>>> 
>>> try:
...     warnings.warn(Warning())
... except Warning:
...     print 'Warning was raised as an exception!'
... 
Warning was raised as an exception!

Внимательно прочитайте документацию для filterwarnings , поскольку она позволяет фильтровать только предупреждение, которое вы хотите, и имеет другие параметры. Я также хотел бы рассмотреть catch_warnings , который является менеджером контекста, который автоматически сбрасывает исходную функцию filterwarnings:

>>> import warnings
>>> with warnings.catch_warnings():
...     warnings.filterwarnings('error')
...     try:
...         warnings.warn(Warning())
...     except Warning: print 'Raised!'
... 
Raised!
>>> try:
...     warnings.warn(Warning())
... except Warning: print 'Not raised!'
... 
__main__:2: Warning: 

1
задан Joshua Thao 15 January 2019 в 21:30
поделиться

1 ответ

Достаточно, чтобы быть дублированным из Android Studio 3.2 Сгенерированный java , но путь немного изменился:

app / build / generate / not_namespaced_r_class_sources / developDebug / processDevelopDebugResources / r / your / project / package / R.java

Путь не будет доступен из Android Studio, вместо этого он доступен из диспетчера файлов вашей ОС (в вашем случае Explorer) [113 ]

Запустите чистый проект, и путь должен появиться.

0
ответ дан Néstor 15 January 2019 в 21:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: