首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >演化/反应-本机-fcm- ClassNotFoundException

演化/反应-本机-fcm- ClassNotFoundException
EN

Stack Overflow用户
提问于 2018-02-19 17:14:52
回答 1查看 801关注 0票数 0

我的应用程序运行得很好但是..。当它收到来自Firebase的通知时,它会崩溃。

我认为发生这种情况是因为我的配置很糟糕,因为我已经实现了“react本机-fcm”示例。

I getFCMToken()圆满成功。

你看上去有什么错误吗?你知道为什么会发生这种事吗?想法?HelP!!

控制台错误

package.json

代码语言:javascript
代码运行次数:0
运行
复制
"dependencies": {
    "firebase": "^4.8.2",
    "lodash": "^4.17.4",
    "moment": "^2.20.1",
    "react": "16.0.0-alpha.12",
    "react-firebase-storage-connector": "^1.1.0",
    "react-native": "0.47",
    "react-native-fbsdk": "^0.7.0",
    "react-native-fcm": "^13.3.1",
    "react-native-fetch-blob": "^0.10.8",
    "react-native-image-picker": "^0.26.7",
    "react-native-modal": "^5.0.0",
    "react-native-responsive-image": "^2.2.0",
    "react-native-side-menu": "^1.1.3",
    "react-native-textinput-effects": "^0.4.2",
    "react-native-vector-icons": "^4.5.0",
    "react-navigation": "^1.0.0-beta.11",
    "react-redux": "^5.0.6",
    "redux": "^3.7.2",
    "redux-thunk": "^2.2.0",
    "slugify": "^1.2.9"
},

app/build.gradlew

代码语言:javascript
代码运行次数:0
运行
复制
      compileSdkVersion 27
      buildToolsVersion "27.0.1"

      defaultConfig {
          applicationId "com.reactnavigationdrawer"
          minSdkVersion 16
          targetSdkVersion 22
          versionCode 1
          versionName "1.0"
          ndk {
              abiFilters "armeabi-v7a", "x86"
          }
      }

  dependencies {
      compile fileTree(dir: "libs", include: ["*.jar"])
      compile "com.android.support:appcompat-v7:+"
      compile "com.facebook.react:react-native:+"  // From node_modules
      compile(project(':react-native-fbsdk')) {
       exclude(group: 'com.facebook.android', module: 'facebook-android-sdk')
      }
      compile('com.facebook.android:facebook-android-sdk:4.22.1')
      compile ("com.google.android.gms:play-services-base:11.2.0") {
        force = true;
     }
      compile ('com.google.firebase:firebase-core:11.2.0') {
          force = true;
      }
      compile ('com.google.firebase:firebase-auth:11.2.0') {
          force = true;
      }
      compile (project(':react-native-fcm')){
          exclude group: "com.google.firebase"
      }
      compile ("com.google.android.gms:play-services-gcm:11.2.0") {
          force = true;
      }
      compile project(':react-native-vector-icons')
      compile project(':react-native-fetch-blob')
      compile project(':react-native-image-picker')

  }

  apply plugin: 'com.google.gms.google-services'

build.gradlew

代码语言:javascript
代码运行次数:0
运行
复制
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.+' // <- USE 2.2.+ version
        classpath 'com.android.tools.build:gradle:2.2.3'
        classpath 'com.google.gms:google-services:3.0.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

MainActivity.java

代码语言:javascript
代码运行次数:0
运行
复制
  package com.reactnavigationdrawer;

  import com.facebook.react.ReactActivity;
  import android.content.Intent;

  public class MainActivity extends ReactActivity {

      @Override
      public void onNewIntent (Intent intent) {
          super.onNewIntent(intent);
          setIntent(intent);
      }

      @Override
      public void onActivityResult(int requestCode, int resultCode, Intent data) {
          super.onActivityResult(requestCode, resultCode, data);
          MainApplication.getCallbackManager().onActivityResult(requestCode, resultCode, data);
      }

      @Override
      protected String getMainComponentName() {
          return "reactnavigationdrawer";
      }
  }

MainApplication.java

代码语言:javascript
代码运行次数:0
运行
复制
  @Override
  protected List<ReactPackage> getPackages() {
     return Arrays.<ReactPackage>asList(
        new MainReactPackage(),
        new VectorIconsPackage(),
        new ImagePickerPackage(),
        new RNFetchBlobPackage(),
        new FIRMessagingPackage(),
        new FBSDKPackage(mCallbackManager)
    );
 }

AndroidManifest.xml

代码语言:javascript
代码运行次数:0
运行
复制
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.reactnavigationdrawer"
      android:versionCode="1"
      android:versionName="1.0">

      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
      <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
      <uses-permission android:name="android.permission.CAMERA" />
      <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
      <uses-permission android:name="android.permission.VIBRATE" />
      <uses-feature android:name="android.hardware.camera" android:required="false"/>
      <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>

      <uses-sdk
          android:minSdkVersion="16"
          android:targetSdkVersion="22" />

      <application
        android:name=".MainApplication"
        android:allowBackup="true"
        android:label="@string/app_name"
        android:icon="@mipmap/ic_launcher"
        android:theme="@style/AppTheme">

        <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
        <meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/ic_launcher"/>

        <service android:name="com.evollu.react.fcm.MessagingService" android:enabled="true" android:exported="true">
           <intent-filter>
             <action android:name="com.google.firebase.MESSAGING_EVENT"/>
           </intent-filter>
        </service>

        <service android:name="com.evollu.react.fcm.InstanceIdService" android:exported="false">
           <intent-filter>
             <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
           </intent-filter>
        </service>

        <receiver android:name="com.evollu.react.fcm.FIRLocalMessagingPublisher"/>
        <receiver android:enabled="true" android:exported="true"  android:name="com.evollu.react.fcm.FIRSystemBootEventReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
                <action android:name="android.intent.action.QUICKBOOT_POWERON"/>
                <action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/>
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>
        <activity
          android:name=".MainActivity"
          android:launchMode="singleTop"
          android:label="@string/app_name"
          android:screenOrientation="portrait"
          android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
          android:windowSoftInputMode="adjustResize">
          <intent-filter>
              <action android:name="android.intent.action.MAIN" />
              <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>
        </activity>
        <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
      </application>
  </manifest>

如果你需要更多的信息你会告诉我的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-19 23:46:50

错误读起来..。

无法解析com.evullu.react.fcm.MessagingService的超类的

这意味着Mainfest.xml中的引用是错误的和/或引用的类com.evullu.react.fcm.MessagingService不存在。它可能更像是com.reactnavigationdrawer.MessagingService (或类似的),也不需要编译过时的包play-services-gcm

最好为com.google.firebase:firebase-messaging:11.8.0 ...which添加一个依赖项,它应该包含无法解决的superclass of com.evullu.react.fcm.MessagingService。您可以使用./gradlew app:dependencies | grep firebase检查它是否存在。

这个文件build.gradlew应该叫做build.gradle,Android可能会抱怨过时的版本-- ...meanwhile,it's com.android.tools.build:gradle:3.0.1 & com.google.gms:google-services:3.1.2。在这种情况下,force = true;似乎也是无用的,至少不明白它在那里应该做什么,参见ResolutionStrategy

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48871022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档