xamarin AMM0000 android:需要为元素〈service#com.microsoft.appcenter.push.TokenService>显式指定导出,面向Android 12的应用

frebpwbc  于 2022-12-07  发布在  Android
关注(0)|答案(1)|浏览(236)

我已经更新了targetsdkversion从30到31(andtio操作系统12)面临以下问题.
java.exe error AMM0000: android:exported needs to be explicitly specified for element <service#com.microsoft.appcenter.push.TokenService>. Apps targeting Android 12
在我的应用程序中,我使用了firebase推送通知服务,并添加了所有与通知相关的服务。

android:installLocation="preferExternal"
          package="com.edmatix.parent.shemida"
          android:versionName="production.release.1.0.0.0"
          android:versionCode="20220818">
  <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="31" />
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
  <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <application android:label="SHEMIDA INTERNATIONAL SCHOOL" android:requestLegacyExternalStorage="true" android:preserveLegacyExternalStorage="true"  android:icon="@drawable/SHEMIDA_Launcher" android:networkSecurityConfig="@xml/network_security_config">
    <meta-data android:name="com.google.android.geo.API_KEY" android:value="AIzaSyAnvG581Y_oVWbDcwYNDy6v4CfRdtmU2CY" />
    <uses-library android:name="org.apache.http.legacy" android:required="false" />
    <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" android:exported="false" />
    <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND">
      <service android:name="com.microsoft.appcenter.push.TokenService" android:exported="true"/>
      <service android:name="crc646c47bac7b09c0b0e.MyFirebaseIIDService" android:exported="true"/>
        <service android:name="crc646c47bac7b09c0b0e.MyFirebaseMessagingService" android:exported="true"/>
          <receiver android:name="crc64a93b901f58a35d0f.PushReceiver" android:exported="true"/>
            <service android:name="crc6494e14b9856016c30.PNFirebaseIIDService" android:exported="true"/>
              <service android:name="crc6494e14b9856016c30.PNFirebaseMessagingService" android:exported="true"/>
      <intent-filter>
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
        <category android:name="${applicationId}" />
      </intent-filter>
    </receiver>
  </application>
</manifest>```


Kindly help on this. im new to xamarin forms
sxissh06

sxissh061#

问题的原因:项目的compileSdkVersiontargetSdkVersion已经升级到31及更高版本。但是,包含intent-filter组件的清单文件(就像上面的〈service#com.microsoft.appcenter.push.TokenService〉一样)没有明确设置android:Exported,则会出现此错误。
解决方案:将compileSdkVersiontargetSdkVersion设置为小于31。

相关问题