#reactjs #react-native #appdynamics
#reactjs #реагирующий-собственный #динамика приложения
Вопрос:
Когда я настраиваю свое приложение React native с помощью appdynamics, приложение react native получает ошибку времени выполнения
‘null не является объектом (вычисление ‘InstrumentationConstants_1.InstrumentationConstants.BREADCRUMB_VISIBILITY_CRASHES_ONLY’)’
По мере интеграции с интеграцией все остается в порядке, но как только я устанавливаю, приложение перестает работать. После интеграции я использовал
Instrumentation.start({
appKey: "AD-AAB-AAY-BHY",
collectorURL: "https://col.eum-appdynamics.com",
});
и
import { Instrumentation } from "@appdynamics/react-native-agent";
в верхней части файла.
Также выполнил все шаги ручной ссылки для Android.
Есть ли что-то, чего мне здесь не хватает?
Ответ №1:
Я понимаю, что прошло много времени, но я все равно внесу свой вклад, так как это может помочь и другим людям.
В моем случае импорт инструментария в iOS вызвал эту ошибку; похоже, это проблема в последней версии @appdynamics /react-native-agent (версия 20.7.0 на момент написания).
Вместо этого я инициализировал AppDynamics в машинном коде (в файле AppDelegate.m) следующим образом:
#import <ADEUMInstrumentation/ADEumInstrumentation.h>
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
ADEumAgentConfiguration *adeumAgentConfig = [[ADEumAgentConfiguration alloc] initWithAppKey:@"YOUR IOS KEY"];
// AppDynamics swizzles some methods for making requests and may mess up other libraries; disable automatic instrumentation if it causes problems to you.
adeumAgentConfig.enableAutoInstrument = NO;
// Initialize AppDynamics
[ADEumInstrumentation initWithConfiguration:adeumAgentConfig];
// Leaving screnshots enabled may cause lag during touches; block screenshots if you experience that.
[ADEumInstrumentation blockScreenshots];
...
return YES;
}
Для получения дополнительной информации ознакомьтесь с руководством по iOS:
https://docs.appdynamics.com/display/PRO45/Instrument an iOS Application
Кроме того, я избегал импорта AppDynamics в javascript, требуя его во время выполнения только в Android.
if (Platform.OS === 'android') {
const { Instrumentation } = require('@appdynamics/react-native-agent');
const appKey = 'YOUR ANDROID KEY';
console.log(`Starting AppDynamics with key ${appKey}.`);
Instrumentation.start({
appKey,
});
}