인프런 커뮤니티 질문&답변

정이님의 프로필 이미지
정이

작성한 질문수

배달앱 클론코딩 [with React Native]

FCM 설정하기

AndroidManifest.xml 을 추가하고 나서 빌드 안됨

해결된 질문

작성

·

5.1K

0

> Task :app:processDebugMainManifest FAILED
package="com.zzz.fooddeliveryapp" found in source AndroidManifest.xml: C:\Users\user\fooddeliveryapp\front\android\app\src\main\AndroidManifest.xml.
Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated.
Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace
This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup.
Error: Command failed: gradlew.bat app:installDebug -PreactNativeDevServerPort=8081
C:\Users\user\fooddeliveryapp\front\android\app\src\debug\AndroidManifest.xml:30:9-36:20 Error:      
        android:exported needs to be explicitly specified for element <receiver#com.dieam.reactnativepushnotification.modules.RNPushNotificationBootEventReceiver>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has 
an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details.

* What went wrong:
Execution failed for task ':app:processDebugMainManifest'.
> Manifest merger failed : android:exported needs to be explicitly specified for element <receiver#com.dieam.reactnativepushnotification.modules.RNPushNotificationBootEventReceiver>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details.

 

똑같이 코드를 붙여주었는데 어디서 잘못된건지 빌드 에러가 납니다...

Task :app:processDebugMainManifest FAILED

여기서 에러가 나서 AndroidManifest.xml 코드를 아무리 보아도 찾을 수가 없네요

어디서 잘못 작성한 걸까요??

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.zzz.fooddeliveryapp">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.VIBRATE"/>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

    <application
            android:usesCleartextTraffic="true"
            android:name=".MainApplication"
            android:label="@string/app_name"
            android:icon="@mipmap/ic_launcher"
            android:allowBackup="false"
            android:theme="@style/AppTheme">
        <meta-data
            android:name="com.naver.maps.map.CLIENT_ID"
            android:value="9rrwk2d5lj" />

        <meta-data  android:name="com.dieam.reactnativepushnotification.notification_foreground"
                    android:value="true"/>
        <meta-data  android:name="com.dieam.reactnativepushnotification.notification_color"
                    android:resource="@color/white"/>

        <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationActions" />
        <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationPublisher" />
        <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationBootEventReceiver">
            <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"/>
            </intent-filter>
        </receiver>

        <service
            android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationListenerService"
            android:exported="false" >
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>

        <activity
                android:name=".MainActivity"
                android:label="@string/app_name"
                android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
                android:launchMode="singleTask"
                android:windowSoftInputMode="adjustResize"
                android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <queries>
        <package android:name="com.skt.tmap.ku" />
    </queries>
</manifest>

답변 1

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

버전이 최신버전이시면

https://github.com/ZeroCho/food-delivery-app/blob/master/rn71/android/app/src/main/AndroidManifest.xml

이런 식으로 하셔야 합니다. android:exported = true 이 부분 같네요.

정이님의 프로필 이미지
정이

작성한 질문수

질문하기