-
[Android] TargetSdkVersion 34 업그레이드▶︎ Android/react-native 2025. 6. 2. 16:53반응형
작업 이유
바뀐 안드로이드 지침에따라, TargetSdkVersion34로 업그레이드 작업이 필요하였습니다.
수정된 코드 (old, new로 표시함)
▼ android/build.gradle
buildscript { ext { compileSdkVersion = 33 buildToolsVersion = "30.0.3" minSdkVersion = 25 //24 targetSdkVersion = 34 //new //targetSdkVersion = 33 //old ndkVersion = "23.1.7779620" } repositories { google() jcenter() mavenCentral() //new } dependencies {classpath 'com.android.tools.build:gradle:3.5.4'} } allprojects { repositories { google() jcenter() mavenCentral() //new maven { url 'https://www.jitpack.io' } maven { url 'https://repo1.maven.org/maven2' } } }
▼ android/gradle.properties
android.useAndroidX=true android.enableJetifier=true //FLIPPER_VERSION=0.33.1 //old MYAPP_RELEASE_STORE_FILE=daram.keystore MYAPP_RELEASE_KEY_ALIAS=daram MYAPP_RELEASE_STORE_PASSWORD=daram MYAPP_RELEASE_KEY_PASSWORD=daram
▼ android/app/build.gradle
모든 flipper, fresco 관련코드 제거
▼ android/app/src/debug/java/com/daramapp/ReactNativeFlipper.java
ReactNativeFlipper.java 파일제거▼ android/app/src/main/AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.daram.inhouse.daram"> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.USE_FINGERPRINT" /> <!-- targetSDK 32 / andoid 12 이하 적용 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32"/> <!-- targetSDK 33 / andoid 13 이하 적용 --> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/> <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" /> <!-- targetSDK 34 / andoid 14 이하 적용 --> <uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED" /> //new <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="false" android:usesCleartextTraffic="true" android:requestLegacyExternalStorage="true" android:theme="@style/AppTheme"> //new_start <receiver android:name=".YourBroadcastReceiver" android:exported="true"> <!-- 또는 false --> <intent-filter> <action android:name="com.daramapp.SOME_ACTION" /> </intent-filter> </receiver> //new_end </application> </manifest>
▼ android/app/src/main/java/com/daramapp/MainApplication.java
package com.daram.inhouse.daram; import android.app.Application; import android.content.Context; //new_start import android.content.BroadcastReceiver; import android.content.Intent; import android.content.IntentFilter; import android.os.Build; import androidx.annotation.Nullable; // 또는 // import javax.annotation.Nullable; // 둘 중 하나 사용 //new_end import com.facebook.react.PackageList; import com.facebook.react.ReactApplication; import com.facebook.react.ReactInstanceManager; import com.facebook.react.ReactNativeHost; import com.facebook.react.ReactPackage; import com.facebook.soloader.SoLoader; import java.lang.reflect.InvocationTargetException; import java.util.List; public class MainApplication extends Application implements ReactApplication { //new_start @Override public Intent registerReceiver(@Nullable BroadcastReceiver receiver, IntentFilter filter) { if (Build.VERSION.SDK_INT >= 34 && getApplicationInfo().targetSdkVersion >= 34) { return super.registerReceiver(receiver, filter, Context.RECEIVER_EXPORTED); } else { return super.registerReceiver(receiver, filter); } } //new_end }
▼ android/gradle/wrapper/gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists # distributionUrl=https\://services.gradle.org/distributions/gradle-6.2.1-all.zip #old distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip #new zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists
반응형'▶︎ Android > react-native' 카테고리의 다른 글
[Android_에러해결] 사진촬영시 앱꺼짐 (0) 2025.03.26 [Android_에러해결] 시뮬레이터 빌드에러 (0) 2025.02.19 [Android_에러해결] APK 빌드에러 (0) 2025.02.19