uni-app Android定位插件打包失败求解决方法

发布于 1周前 作者 gougou168 来自 Uni-App

uni-app Android定位插件打包失败求解决方法
应用咱们的这人插件后最后打正式包时会报下面的错误: (项目中只用到了这个插件) 求解决方法!!!

错误解决方案

错误描述:

App原生语言插件/uts插件 依赖的三方库冲突
解决方案:请根据错误信息修改 App原生语言插件/uts插件 依赖的三方库或联系插件作者解决。
######################

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ‘:app:checkReleaseDuplicateClasses’.

    A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
    Duplicate class a.a found in modules lib.5plus.base-release.aar -> jetified-lib.5plus.base-release-runtime (lib.5plus.base-release.aar) and library_open_gnss-release.aar -> jetified-library_open_gnss-release-runtime (library_open_gnss-release.aar)
    Duplicate class b.a found in modules lib.5plus.base-release.aar -> jetified-lib.5plus.base-release-runtime (lib.5plus.base-release.aar) and library_open_gnss-release.aar -> jetified-library_open_gnss-release-runtime (library_open_gnss-release.aar)
    Duplicate class b.b found in modules lib.5plus.base-release.aar -> jetified-lib.5plus.base-release-runtime (lib.5plus.base-release.aar) and library_open_gnss-release.aar -> jetified-library_open_gnss-release-runtime (library_open_gnss-release.aar)
    Duplicate class b.c found in modules lib.5plus.base-release.aar -> jetified-lib.5plus.base-release-runtime (lib.5plus.base-release.aar) and library_open_gnss-release.aar -> jetified-library_open_gnss-release-runtime (library_open_gnss-release.aar)
    Duplicate class b.d found in modules lib.5plus.base-release.aar -> jetified-lib.5plus.base-release-runtime (lib.5plus.base-release.aar) and library_open_gnss-release.aar -> jetified-library_open_gnss-release-runtime (library_open_gnss-release.aar)
    Duplicate class c.a found in modules lib.5plus.base-release.aar -> jetified-lib.5plus.base-release-runtime (lib.5plus.base-release.aar) and library_open_gnss-release.aar -> jetified-library_open_gnss-release-runtime (library_open_gnss-release.aar)
    Duplicate class c.b found in modules lib.5plus.base-release.aar -> jetified-lib.5plus.base-release-runtime (lib.5plus.base-release.aar) and library_open_gnss-release.aar -> jetified-library_open_gnss-release-runtime (library_open_gnss-release.aar)
    Duplicate class c.c found in modules lib.5plus.base-release.aar -> jetified-lib.5plus.base-release-runtime (lib.5plus.base-release.aar) and library_open_gnss-release.aar -> jetified-library_open_gnss-release-runtime (library_open_gnss-release.aar)
    Duplicate class c.d found in modules lib.5plus.base-release.aar -> jetified-lib.5plus.base-release-runtime (lib.5plus.base-release.aar) and library_open_gnss-release.aar -> jetified-library_open_gnss-release-runtime (library_open_gnss-release.aar)
    Duplicate class c.e found in modules lib.5plus.base-release.aar -> jetified-lib.5plus.base-release-runtime (lib.5plus.base-release.aar) and library_open_gnss-release.aar -> jetified-library_open_gnss-release-runtime (library_open_gnss-release.aar)
    Duplicate class c.f found in modules lib.5plus.base-release.aar -> jetified-lib.5plus.base-release-runtime (lib.5plus.base-release.aar) and library_open_gnss-release.aar -> jetified-library_open_gnss-release-runtime (library_open_gnss-release.aar)
    Duplicate class d.a found in modules lib.5plus.base-release.aar -> jetified-lib.5plus.base-release-runtime (lib.5plus.base-release.aar) and library_open_gnss-release.aar -> jetified-library_open_gnss-release-runtime (library_open_gnss-release.aar)

Go to the documentation to learn how to Fix dependency resolution errors.

  • Try:

    Run with --debug option to get more log output.
    Run with --scan to get full insights.
    Get more help at https://help.gradle.org.

  • Exception is:
    org.gradle.api.tasks.TaskExecutionException: Execution failed for task ‘:app:checkReleaseDuplicateClasses’.
    Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
    Caused by: java.lang.RuntimeException: Duplicate class a.a found in modules lib.5plus.base-release.aar -> jetified-lib.5plus.base-release-runtime (lib.5plus.base-release.aar) and library_open_gnss-release.aar -> jetified-library_open_gnss-release-runtime (library_open_gnss-release.aar)
    … (更多异常堆栈信息省略)

Go to the documentation to learn how to Fix dependency resolution errors. at com.android.build.gradle.internal.tasks.CheckDuplicateClassesDelegate.run(CheckDuplicateClassesDelegate.kt:65)
at com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable.execute(CheckDuplicateClassesDelegate.kt:91)
… (更多异常堆栈信息省略)

BUILD FAILED in 1m 18s
gradle build error: 1


2 回复

此问题已确认是uni-app SDK内部混淆和三方SDK的混淆冲突导致,如果三方SDK无法调整配置,请暂时回退使用4.36版本。后续版本会uni-app SDK会更新混淆配置避免与三方SDK的混淆配置产生冲突。


在处理uni-app Android定位插件打包失败的问题时,首先需要确保几个关键步骤和配置正确无误。以下是一些可能导致打包失败的原因及其相应的代码或配置检查方法。由于不能直接提供具体的环境或项目文件,我将给出一些通用的代码示例和配置检查点。

1. 检查AndroidManifest.xml权限配置

确保在AndroidManifest.xml中添加了定位所需的权限:

<manifest ...>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    ...
    <application ...>
        ...
    </application>
</manifest>

2. 配置Gradle文件

app/build.gradle中,确保添加了定位相关的依赖库,例如Google Play服务位置库:

dependencies {
    implementation 'com.google.android.gms:play-services-location:18.0.0'
    ...
}

3. 动态权限请求(如果适用)

在uni-app中,如果是Android 6.0及以上版本,需要动态请求定位权限。可以在main.js或相应的页面中添加权限请求代码:

// 检查并请求定位权限
function requestLocationPermission() {
    #ifdef APP-PLUS
    plus.android.requestPermissions(['android.permission.ACCESS_FINE_LOCATION'], function(event) {
        if (event.deniedAlways.length > 0 || event.denied.length > 0) {
            console.error('定位权限请求被拒绝');
        } else {
            console.log('定位权限已授予');
            // 开始定位
            startLocation();
        }
    });
    #endif
}

4. 检查uni-app配置

manifest.json中,确保已正确配置相关插件和权限:

"mp-weixin": {},
"app-plus": {
    "distribute": {
        "android": {
            "permissions": [
                "ACCESS_FINE_LOCATION",
                "ACCESS_COARSE_LOCATION"
            ]
        }
    },
    "plugins": {
        "location": {
            "version": "最新版本号",
            "provider": "system" // 或其他提供者,如baidu, gps等
        }
    }
}

5. 清理和重建项目

在开发环境中,尝试清理并重建项目:

# 清理项目
npm run clean
# 重建项目
npm run build

总结

确保所有必要的权限和依赖都已正确配置,并且代码逻辑能够处理权限请求。如果以上步骤仍然无法解决问题,建议检查IDE的日志输出,查看具体的错误信息,以便进一步定位问题。此外,确保uni-app和所有相关依赖库都已更新到最新版本。

回到顶部