1

我在Android Studio中有問題,火力地堡。 這裏是什麼情況: 在調試國防部一切工作正常與遵循AndroidManifest未解決類 'MyFirebaseMessagingService' 的Android工作室

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.hajora.dndcommerce" 
android:installLocation="auto" 
android:versionCode="2" 
android:versionName="1.0" 
xmlns:tools="http://schemas.android.com/tools"> 
<uses-sdk 
    android:minSdkVersion="11" 
    android:targetSdkVersion="21" 
    tools:overrideLibrary="com.google.firebase.messaging" 
    /> 
<supports-screens 
    android:largeScreens="true" 
    android:normalScreens="true" 
    android:smallScreens="true" 
    android:xlargeScreens="true" 
    android:anyDensity="true" 
/> 
<uses-permission android:name="android.permission.CALL_PHONE" /> 
<uses-feature android:name="android.hardware.telephony" android:required="false" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

<application 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.hajora.dndcommerce.Education" 
     android:label="@string/app_name"> 
    </activity> 
    <activity android:name="com.hajora.dndcommerce.Splashscreen"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <action android:name="com.google.firebase.MESSAGING_EVENT"/> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name="com.hajora.dndcommerce.SingleItemViewEducation" /> 
    <activity android:name="com.hajora.dndcommerce.SingleItemViewNews" /> 
    <activity android:name="com.hajora.dndcommerce.Main" /> 
    <activity android:name="com.hajora.dndcommerce.Submit" /> 
    <activity android:name="com.hajora.dndcommerce.News" /> 
    <activity android:name="com.hajora.dndcommerce.Contact" /> 
    <activity android:name="com.hajora.dndcommerce.About" /> 
    <activity android:name="com.hajora.dndcommerce.AboutCompany" /> 
    <activity android:name="com.hajora.dndcommerce.AboutHistory" /> 
    <activity android:name="com.hajora.dndcommerce.AboutVision" /> 
    <activity android:name="com.hajora.dndcommerce.AboutPartners" /> 
    <activity android:name="com.hajora.dndcommerce.Ask" 
     android:windowSoftInputMode="stateUnchanged" /> 
    <activity android:name=".Partner" /> 
</application> 
    <service 
     android:name=".MyFirebaseMessagingService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.MESSAGING_EVENT"/> 
     </intent-filter> 
    </service> 
    <service 
     android:name=".MyFirebaseInstanceIDService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/> 
     </intent-filter> 
    </service> 

當我切換到發佈模式,我得到的錯誤:

Error:(54) Error: The <service> element must be a direct child of the <application> element [WrongManifestParent] 

所以,我然後把兩種服務內標籤之後,我得到的錯誤:

Unresolved class 'MyFirebaseMessagingService' less... (Ctrl+F1) 

驗證Android XML文件中的資源引用。

我想不出有什麼問題

UPDATE gradle這個

apply plugin: 'com.android.application' 

android { 

    compileSdkVersion 21 
    buildToolsVersion "26.0.0" 
    defaultConfig { 
     applicationId 'com.hajora.dndcommerce' 
     minSdkVersion 21 
     targetSdkVersion 21 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
      signingConfig signingConfigs.release 
     } 
    } 
    productFlavors { 
    } 
    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_7 
     targetCompatibility JavaVersion.VERSION_1_7 
    } 
} 

dependencies { 
    compile files('libs/activation.jar') 
    compile files('libs/mail.jar') 
    compile files('libs/additionnal.jar') 
    compile 'com.google.firebase:firebase-messaging:10.0.1' 
    compile 'com.android.support.constraint:constraint-layout:1.0.2' 
    compile 'com.google.firebase:firebase-core:10.0.1' 
} 
apply plugin: 'com.google.gms.google-services' 

回答

0

之前</service>標籤您關閉您的</application>標籤。試試下面的代碼

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.hajora.dndcommerce" 
android:installLocation="auto" 
android:versionCode="2" 
android:versionName="1.0" 
xmlns:tools="http://schemas.android.com/tools"> 
<uses-sdk 
    android:minSdkVersion="11" 
    android:targetSdkVersion="21" 
    tools:overrideLibrary="com.google.firebase.messaging" 
    /> 
<supports-screens 
    android:largeScreens="true" 
    android:normalScreens="true" 
    android:smallScreens="true" 
    android:xlargeScreens="true" 
    android:anyDensity="true" 
/> 
<uses-permission android:name="android.permission.CALL_PHONE" /> 
<uses-feature android:name="android.hardware.telephony" android:required="false" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

<application 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.hajora.dndcommerce.Education" 
     android:label="@string/app_name"> 
    </activity> 
    <activity android:name="com.hajora.dndcommerce.Splashscreen"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name="com.hajora.dndcommerce.SingleItemViewEducation" /> 
    <activity android:name="com.hajora.dndcommerce.SingleItemViewNews" /> 
    <activity android:name="com.hajora.dndcommerce.Main" /> 
    <activity android:name="com.hajora.dndcommerce.Submit" /> 
    <activity android:name="com.hajora.dndcommerce.News" /> 
    <activity android:name="com.hajora.dndcommerce.Contact" /> 
    <activity android:name="com.hajora.dndcommerce.About" /> 
    <activity android:name="com.hajora.dndcommerce.AboutCompany" /> 
    <activity android:name="com.hajora.dndcommerce.AboutHistory" /> 
    <activity android:name="com.hajora.dndcommerce.AboutVision" /> 
    <activity android:name="com.hajora.dndcommerce.AboutPartners" /> 
    <activity android:name="com.hajora.dndcommerce.Ask" 
     android:windowSoftInputMode="stateUnchanged" /> 
    <activity android:name=".Partner" /> 

    <service 
     android:name="com.hajora.dndcommerce.MyFirebaseMessagingService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.MESSAGING_EVENT"/> 
     </intent-filter> 
    </service> 
    <service 
     android:name="com.hajora.dndcommerce.MyFirebaseInstanceIDService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/> 
     </intent-filter> 
    </service> 
</application> 
+0

我寫,當我這樣做,我得到的錯誤: 未解析類的MyFirebaseMessagingService「少...(按Ctrl + F1) 驗證Android XML文件中的資源引用。 未解決類 'MyFirebaseInstanceIDService' 少...(按Ctrl + F1) Android的XML文件裏void驗證資源引用。 –

+0

嘗試添加com.hajora.dndcommerce。清單中的MyFirebaseMessagingService –

+0

並從activity標籤中刪除。我更新了我的答案。檢查它 –

1

看到該圖片第一 Image with error

檢查,如果火力地堡類都在正確的包文件夾。例如,如果火力類都在包「服務」,那麼在清單服務將有android:name=".services.FirebaseMessagingService"然後Unresolved class 'MyFirebaseMessagingService'錯誤將得到解決。

enter image description here

+1

我找不到Firebase課程。我通過Android Studio工具(自動)添加了Firebase,所以我沒有自己放置課程 –

+0

是否有模板可以編寫在https://firebase.google.com/docs/cloud-messaging/android/上引用的MyFirebaseMessagingService和MyFirebaseInstanceIDService類。客戶? –

+0

我想我可以在https://github.com/firebase/quickstart-android/tree/master/messaging/app/src/main/java/com/google/firebase/quickstart找到一個模板示例/ FCM。 –

0

下面的代碼是在我的app/src/main/AndroidManifest.xml文件:

<!-- [START firebase_service] --> 
<service 
    android:name="com.[myapp].MyFirebaseMessagingService"> 
    <intent-filter> 
     <action android:name="com.google.firebase.MESSAGING_EVENT"/> 
    </intent-filter> 
</service> 
<!-- [END firebase_service] --> 

,在紅色的出現下面的圖像中的文本MyFirebaseMessagingService應顯示爲綠色:

enter image description here

紅色表示有錯誤:

enter image description here

爲了解決這個問題,我創建的文件app/src/main/java/com/[myapp]\MyFirebaseMessagingService.java,內容如下:

package com.[myapp]; 
import com.google.firebase.messaging.FirebaseMessagingService; 
public class MyFirebaseMessagingService extends FirebaseMessagingService { 
} 

現在Android Studio中,這是紅色文字變爲綠色:

enter image description here