我在反应原生应用中使用https://github.com/AppsFlyerSDK/react-native-appsflyer。
第一个问题:
'Attempt to invoke virtual method \'android.content.Context android.app.Application.getApplicationContext()\' on a null object reference'
在appsFlyer.initSdk
第二个问题:
我得到了这个结果(见截图)
这是我的代码:
```
...
...
// appsFlyer options
const options = {
devKey: 'Bl9i45ho07lp43',
isDebug: true,
};
if (Platform.OS === 'ios') {
options.appId = '1165972436';
}
this.onInstallConversionDataCanceller = appsFlyer.onInstallConversionData(
(data) => {
console.log(data);
}
);
appsFlyer.initSdk(options,
(result) => {
console.log(result);
},
(error) => {
console.error('error inside appsFlyer.initSdk ==>', error);
}
);
.....
.....
class App extends React.PureComponent {
state = {
appState: AppState.currentState,
}
componentDidMount() {
AppState.addEventListener('change', this._handleAppStateChange);
}
componentWillUnmount() {
if (this.onInstallConversionDataCanceller) {
this.onInstallConversionDataCanceller();
}
AppState.removeEventListener('change', this._handleAppStateChange);
}
_handleAppStateChange = (nextAppState) => {
if (this.state.appState.match(/inactive|background/) && nextAppState === 'active') {
if (Platform.OS === 'ios') {
appsFlyer.trackAppLaunch();
}
}
if (this.state.appState.match(/active|foreground/) && nextAppState === 'background') {
if (this.onInstallConversionDataCanceller) {
this.onInstallConversionDataCanceller();
}
}
this.setState({ appState: nextAppState });
}
}
```
答案 0 :(得分:1)
我找到了解决方案:
最初,我是通过添加来关注文档的
new RNAppsFlyerPackage(MainApplication.this)
中的getPackages()
方法内MainApplication.java
,但我一直有错误说我无法使用RNAppsFlyerPackage()
的参数
我不得不删除参数,以便我可以构建项目,但这并没有进行Android集成测试
1 - 解决方案是清理项目
2 - 使用以下命令删除node_modules:
rm -rf /node_modules
3-之后,我被提示在方法
中使用参数 new RNAppsFlyerPackage(MainApplication.this)
现在Android集成测试正在传递