react-native-system-notification NativeModule在apk版本中未定义

时间:2016-11-11 19:11:15

标签: android notifications react-native react-native-android

我正在开发这个应用项目,我需要根据预定义文本列表安排通知。在我的开发环境中一切正常,但是当我构建APK版本时,它们将无法正常工作。进一步调试我发现通知是一个NativeModule,它在发布时变为undefined

这将返回版本中react-native run-androidundefined的模块属性:

console.log(React.NativeModules.NotificationModule);

这是导致我的实际错误:

Notification
  .create({ attrs })
  .then((n) => console.log('Notification', n)
  .catch((err) => console.log(err);

打印:

{ [TypeError: undefined is not an object (evaluating 'd.rGetApplicationName')] line: 670  column: 2663, sourceURL: 'index.android.bundle' }

我正在使用react-native-system-notification,我理解的是removes the GCM requirement无关的修改。

这是issue,但该项目自8月以来似乎无效,问题是从4月开始。

那么,我还应该在哪里寻找解决这个问题的方法呢?

2 个答案:

答案 0 :(得分:0)

我挖掘了它们的来源 - 看起来不错。几乎感觉就像你的配置错误。仔细检查他们的安装步骤,并在./gradlew assembleRelease的输出中,确保在输出中看到它已编译/链接。另外,请确保您的React Native版本是最新的。

答案 1 :(得分:0)

我已从发布中禁用了proguard,通知开始工作!不知道如何防止proguard弄乱包,但它只节省了1Mb,所以我很满意这个解决方案。

@Override
public void onBackPressed() {
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer.isDrawerOpen(GravityCompat.START)) {
        drawer.closeDrawer(GravityCompat.START);
    } else {
        super.onBackPressed();
    }

}
def enableProguardInReleaseBuilds = false

中的