Android14 팝업 문제

팝업 문제

Android 14로 업그레이드한 후 애플리케이션이 해당 CPU 아키텍처에 적응하지 못해 시스템에 의해 강제로 팝업이 표시되었습니다. 팝업 프로세스는 참조에서 확인할 수 있습니다애플리케이션 팝업창 "이 애플리케이션은 안드로이드 이전 버전용으로 특별히 제작된 애플리케이션이므로 정상적으로 실행되지 않을 수 있습니다..." 이유 이를 방해할 방법이 없기 때문입니다. 응용 프로그램 수준에서 프로세스를 수행하며, 설치 중에 관련 패키지가 감지되어야 합니다.

  1. 두 가지 팝업이 있습니다. 이 앱은 최신 버전의 Android와 호환되지 않습니다. 업데이트를 확인하거나 앱 개발자에게 문의하세요. deprecated_abi_message
  2. 이 앱은 이전 버전의 Android용으로 제작되었습니다. 제대로 작동하지 않을 수 있으며 최신 보안 및 개인 정보 보호 기능이 포함되어 있지 않을 수 있습니다. 업데이트를 확인하거나 앱 개발자에게 문의하세요. deprecated_target_sdk_message

안드로이드 소스코드에서 검색하실 수 있습니다이미지.png

질문 1

abiFilter에서 arm64-v8a를 선언합니다. 이 작업은 예외가 발생할 수 있습니다. 일부 라이브러리는 이를 지원하지 않으므로 교체해야 합니다.

android{
    
     	
    defaultConfig {
    
     		
        ndk {
    
                 
            abiFilters "armeabi", "armeabi-v7a", "x86", "arm64-v8a"         
        } 	
    } 
}

Android 소스 코드에서 deprecated_abi_message를 검색하면 DeprecatedAbiDialog를 찾을 수 있습니다. 이 카테고리 아래에 64비트에 맞게 조정해야 함을 보여주는 제출 로그가 있습니다.
이미지.png

질문 2

targetSdkVersion을 28로 수정
Android 소스 코드에서 deprecated_target_sdk_message를 검색하면 AppWarnings.showDeprecatedTargetDialogIfNeeded에 의해 표시되는 DeprecatedTargetSdkVersionDialog 팝업 창을 찾을 수 있습니다. 풀업 여부를 결정하는 것은 Build.VERSION입니다. .MIN_SUPPORTED_TARGET_SDK_INT, 이 변수를 검색하면 Frameworks/base/core/java/android/os/Build.java에서 다음 설명을 찾을 수 있습니다.

/**          
 * The current lowest supported value of app target SDK. Applications targeting          
 * lower values may not function on devices running this SDK version. Its possible          
 * values are defined in {@link Build.VERSION_CODES}.          
 *          
 * @hide          
 */         
public static final int MIN_SUPPORTED_TARGET_SDK_INT = SystemProperties.getInt(                 
    "ro.build.version.min_supported_target_sdk", 0);

build/make/tools/buildinfo.sh에서 찾을 수 있는 ro.build.version.min_supported_target_sdk 변수를 검색합니다. 스크립트는 build/make/core에서 찾을 수 있는 PLATFORM_MIN_SUPPORTED_TARGET_SDK_VERSION 값을 출력합니다. /version_util.mk 변수는 28로 설정됩니다.
왜 28인가요? Frameworks/base/core/java/android/os/Build.java 파일로 돌아가면 front- 문제를 언급하는 해당 버전 설명을 찾을 수 있습니다. Android 14에는 포그라운드 서비스 startForeground()에 대한 새로운 요구사항이 있습니다. 이것이 targetSdkVersion이 28에 도달해야 하는 이유일 수 있습니다.

/**
 * P.
 *
 * <p>Released publicly as Android 9 in August 2018.
 * <p>Applications targeting this or a later release will get these
 * new changes in behavior. For more information about this release, see the
 * <a href="/about/versions/pie/">Android 9 Pie overview</a>.</p>
 * <ul>
 * <li>{@link android.app.Service#startForeground Service.startForeground} requires
 * that apps hold the permission
 * {@link android.Manifest.permission#FOREGROUND_SERVICE}.</li>
 * <li>{@link android.widget.LinearLayout} will always remeasure weighted children,
 * even if there is no excess space.</li>
 * </ul>
 *
 */
public static final int P = 28;

안드로이드 소스코드는안드로이드 코드 검색에서 확인하실 수 있습니다. 위 소스코드는 2023년 10월 25일에 확인되었습니다

Guess you like

Origin blog.csdn.net/qq_44447469/article/details/134241470