Ответ 1
Я видел эту ошибку некоторое время назад, когда обновлял приложение native & реагировать на SDK 26. Проблема заключается в неотъемлемой функции, которая создает красный диалог для разработки. Эти функции используют TYPE_SYSTEM_ALERT в качестве своего типа, поэтому вы не можете использовать уровень SDK, превышающий 25, в вашем гибридном приложении с этой версией native-native, если вы не исправляете эту функцию, чтобы она больше не использовала TYPE_SYSTEM_ALERT.
это код на основе реакции в 0.48:
private void showNewError(
final String message,
final StackFrame[] stack,
final int errorCookie,
final ErrorType errorType) {
UiThreadUtil.runOnUiThread(
new Runnable() {
@Override
public void run() {
if (mRedBoxDialog == null) {
mRedBoxDialog = new RedBoxDialog(mApplicationContext, DevSupportManagerImpl.this, mRedBoxHandler);
mRedBoxDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
}
if (mRedBoxDialog.isShowing()) {
// Sometimes errors cause multiple errors to be thrown in JS in quick succession. Only
// show the first and most actionable one.
return;
}
mRedBoxDialog.setExceptionDetails(message, stack);
updateLastErrorInfo(message, stack, errorCookie, errorType);
// Only report native errors here. JS errors are reported
// inside {@link #updateJSError} after source mapping.
if (mRedBoxHandler != null && errorType == ErrorType.NATIVE) {
mRedBoxHandler.handleRedbox(message, stack, RedBoxHandler.ErrorType.NATIVE);
mRedBoxDialog.resetReporting(true);
} else {
mRedBoxDialog.resetReporting(false);
}
mRedBoxDialog.show();
}
});
}
Вам нужно будет изменить mRedBoxDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
вызов другого типа. Но это не дает вам никаких гарантий, что вы сможете запустить приложение с помощью SDK 26, когда я попытался скомпилировать ответ с SDK 26, другие части проекта "отреагировали" на взрыва, так что это вряд ли будет работать на коротких (возможно, вам придется начать исправлять другие проблемы). Итак, ваши варианты:
-Открыть приложение до уровня 25;
-Upgrade реагировать 0.52, где эта функция больше не существует, и повторите попытку (после этого библиотеки ответов могут не работать)
-Установите функцию в ответной ветке 0.48 и попробуйте исправленную версию. Некоторые другие проблемы, связанные с SDK, могут возникнуть (реакция на данный момент все еще скомпилирована с SDK 22)
Счастливое кодирование!