You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NativeScript Angular应用Android14崩溃:SecurityException问题求助

解决NativeScript Angular在Android 14上的java.lang.SecurityException错误

问题背景

你的NativeScript Angular应用在Android 14(API Level 34)之前运行正常,升级后崩溃并抛出以下错误:

ERROR Error: java.lang.SecurityException: Writable dex file '/data/user/0/xx.XxxxXxx.XXXX/code_cache/secondary-dexes/androidx.viewpager.widget.PagerAdapter_vendor_51348_28_CarouselPagerAdapterClassInner.jar' is not allowed.

尽管NativeScript 8.6.x宣称修复了该问题,但仍出现异常,以下是针对性解决方案:


具体解决步骤

  • 确认核心依赖版本
    确保@nativescript/core和@nativescript/android升级到8.6.3及以上版本(该版本完善了Android 14的dex权限适配),执行命令:

    npm install @nativescript/core@latest @nativescript/android@latest
    
  • 调整Android Gradle配置
    在项目根目录的App_Resources/Android/app.gradle中添加/更新以下配置:

    android {
        compileSdkVersion 34
        defaultConfig {
            targetSdkVersion 34
        }
        packagingOptions {
            jniLibs {
                useLegacyPackaging = true
            }
        }
        dexOptions {
            preDexLibraries = false
        }
    }
    
    dependencies {
        implementation 'androidx.core:core-ktx:1.12.0'
    }
    
  • 清理项目缓存
    删除旧构建文件与缓存,避免残留冲突:

    rm -rf node_modules platforms hooks .gradle
    npm install
    ns clean
    
  • 排查第三方插件兼容性
    重点检查涉及ViewPager、动态类加载的插件(如报错中的CarouselPagerAdapter相关插件),确认插件已适配Android 14。若插件未维护,尝试替换为活跃维护的替代插件,或临时禁用插件验证问题来源。

  • 启用R8代码压缩(可选)
    在app.gradle中启用R8优化dex结构,规避Android 14的权限限制:

    android {
        buildTypes {
            release {
                minifyEnabled true
                shrinkResources true
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            }
        }
    }
    

内容的提问来源于stack exchange,提问作者Loralon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 01:03:16