找不到 \android-sdk-windows\tools\lib\proguard.cfg文件

本文详细介绍了在新建Android程序时遇到找不到proguard.cfg文件错误的原因及解决方法,通过新建该文件并添加特定配置内容,可有效避免此问题。同时,提供了关于proguard.cfg文件在构建过程中的作用和重要性的解释。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在新建Android程序的时候出现以下错误:

找不到 \android-sdk-windows\tools\lib\proguard.cfg文件

 

原因:

SDK不完整。

 

解决方法:

方法一

可在 \android-sdk-windows\tools\lib\目录下新建一个proguard.cfg文件

然后添下以下内容:

proguard.cfg
   
- optimizationpasses 5 - dontusemixedcaseclassnames - dontskipnonpubliclibraryclasses - dontpreverify - verbose - optimizations !code / simplification / arithmetic,!field /* ,!class / merging /* - keep public class * extends android.app.Activity - keep public class * extends android.app.Application - keep public class * extends android.app.Service - keep public class * extends android.content.BroadcastReceiver - keep public class * extends android.content.ContentProvider - keep public class com.android.vending.licensing.ILicensingService - keepclasseswithmembernames class * { native <methods>; } - keepclasseswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet); } - keepclasseswithmembernames class * { public <init>(android.content.Context, android.util.AttributeSet, int); } - keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } - keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; }

build.gradle(app):apply plugin: 'com.android.application' android { compileSdkVersion 34 defaultConfig { applicationId "com.hik.netsdk.SimpleDemo" minSdkVersion 21 targetSdkVersion 34 versionCode 11 versionName "3.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true multiDexEnabled true ndk { abiFilters "armeabi-v7a","arm64-v8a" } configurations.all { resolutionStrategy { // 强制使用统一版本的 OkHttp force 'com.squareup.okhttp3:okhttp:4.9.1' // 解决可能的冲突 eachDependency { details -> if (details.requested.group == 'com.squareup.okhttp3') { details.useVersion '4.9.1' } } } } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } sourceSets { main { res.srcDirs = [ 'src/main/res', 'src/main/res/layout/DevMgtUI', 'src/main/res/layout/BusinessUI' ] jniLibs.srcDirs = ['libs'] } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } // 添加的 aaptOptions 配置 aaptOptions { cruncherEnabled = false // 禁用 PNG 压缩检查 additionalParameters '--warn-manifest-validation' // 启用清单验证警告 } // 添加的 packagingOptions 配置 packagingOptions { exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/license.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/notice.txt' exclude 'META-INF/ASL2.0' } buildToolsVersion = '28.0.3' } dependencies { implementation 'androidx.appcompat:appcompat:1.4.1' implementation 'com.google.android.material:material:1.5.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.3' implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'io.github.ezviz-open:ezviz-sdk:5.20' implementation 'com.ezviz.sdk:ezuikit:2.2.1' implementation 'com.google.code.gson:gson:2.8.5' implementation 'com.squareup.okhttp3:okhttp:4.9.1' implementation "androidx.media3:media3-exoplayer:1.3.1" implementation "androidx.media3:media3-exoplayer-hls:1.3.1" implementation "androidx.media3:media3-ui:1.3.1" implementation "androidx.media3:media3-datasource-okhttp:1.3.1" coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' implementation "androidx.media3:media3-common:1.3.1" } 依据上述依赖解决rebuild project后的报错:Duplicate class org.MediaPlayer.PlayM4.Player$PRIVATE_RENDER found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.Player$PTZ_PARAM found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.Player$SESSION_INFO found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.Player$SRTRANS_ELEMENT found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.Player$SRTRANS_PARAM found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.Player$TEM_FLAG found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.PlayerCallBack found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.PlayerCallBack$PlayerAdditionalCB found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.PlayerCallBack$PlayerAudioDataCB found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.PlayerCallBack$PlayerDecodeCB found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.PlayerCallBack$PlayerDecodeCBEx found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.PlayerCallBack$PlayerDisplayCB found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.PlayerCallBack$PlayerDisplayCBEx found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.PlayerCallBack$PlayerEncTypeChgCB found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.PlayerCallBack$PlayerEncryptTypeCB found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.PlayerCallBack$PlayerFECDisplayCB found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.PlayerCallBack$PlayerFileRefCB found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.PlayerCallBack$PlayerHSDetectCB found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.PlayerCallBack$PlayerIVSDrawFunCB found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.PlayerCallBack$PlayerPlayEndCB found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.PlayerCallBack$PlayerPreRecordCB found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.PlayerCallBack$PlayerPreRecordCBEx found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.PlayerCallBack$PlayerRunTimeInfoCB found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.SurfaceCallBack found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Duplicate class org.MediaPlayer.PlayM4.TimeStruct found in modules jetified-ezviz-sdk-4.9.1.1-runtime (com.ezviz.sdk:ezviz-sdk:4.9.1.1) and jetified-ezviz-sdk-5.20-runtime (io.github.ezviz-open:ezviz-sdk:5.20) Go to the documentation to learn how to Fix dependency resolution errors.
最新发布
06-23
<think>根据错误信息,问题在于同时引入了两个版本的EZVIZSDK-`com.ezviz.sdk:ezviz-sdk:4.9.1.1`-`io.github.ezviz-open:ezviz-sdk:5.20`这两个库中包含了相同的类(Duplicateclass),导致冲突。在您的`build.gradle`中,您已经声明了:```groovyimplementation'io.github.ezviz-open:ezviz-sdk:5.20'implementation'com.ezviz.sdk:ezuikit:2.2.1'```注意,`com.ezviz.sdk:ezuikit:2.2.1`可能会传递依赖于旧版本的`com.ezviz.sdk:ezviz-sdk`(例如4.9.1.1)。而您又显式地引入了新版本的`io.github.ezviz-open:ezviz-sdk:5.20`,因此产生了冲突。解决方案是排除旧版本的依赖,或者确保只使用一个版本的SDK。我们可以通过以下步骤解决:1.检查`com.ezviz.sdk:ezuikit:2.2.1`所依赖的版本,并排除其传递依赖的旧版SDK。2.或者,如果`ezuikit`库与新版的`ezviz-sdk:5.20`兼容,那么我们可以排除旧版,只使用新版。修改依赖如下:```groovyimplementation('com.ezviz.sdk:ezuikit:2.2.1'){excludegroup:'com.ezviz.sdk',module:'ezviz-sdk'}implementation'io.github.ezviz-open:ezviz-sdk:5.20'```这样,我们就排除了`ezuikit`中传递依赖的旧版`ezviz-sdk`,然后使用新版5.20。另外,请注意,新版的SDK的groupid已经改为`io.github.ezviz-open`,所以排除旧group下的模块即可。修改后的`dependencies`部分如下:```groovydependencies{implementation'androidx.appcompat:appcompat:1.4.1'implementation'com.google.android.material:material:1.5.0'implementation'androidx.constraintlayout:constraintlayout:2.1.3'implementation'androidx.legacy:legacy-support-v4:1.0.0'//修改EZVIZSDK的引入方式,排除ezuikit中的旧版ezviz-sdkimplementation('com.ezviz.sdk:ezuikit:2.2.1'){excludegroup:'com.ezviz.sdk',module:'ezviz-sdk'}implementation'io.github.ezviz-open:ezviz-sdk:5.20'implementation'com.google.code.gson:gson:2.8.5'implementation'com.squareup.okhttp3:okhttp:4.9.1'implementation"androidx.media3:media3-exoplayer:1.3.1"implementation"androidx.media3:media3-exoplayer-hls:1.3.1"implementation"androidx.media3:media3-ui:1.3.1"implementation"androidx.media3:media3-datasource-okhttp:1.3.1"coreLibraryDesugaring'com.android.tools:desugar_jdk_libs:2.0.4'implementation"androidx.media3:media3-common:1.3.1"}```这样应该就能解决重复类的问题。但是,请注意,排除依赖后要确保`ezuikit`库与新版的`ezviz-sdk:5.20`兼容。如果不兼容,可能会出现运行时错误。因此,建议查看`ezuikit:2.2.1`的文档,确认它是否支持新版SDK。如果问题仍然存在,您可以尝试使用`./gradlew:app:dependencies`命令查看依赖树,确认冲突是否已经解决。另外,您之前还强制了OkHttp的版本,这很好,因为OkHttp的版本冲突也是常见问题。最后,如果排除依赖后还有其他问题,可能需要考虑升级`ezuikit`到与新SDK版本兼容的版本,或者降级EZVIZSDK到与`ezuikit:2.2.1`兼容的版本。但根据您的需求,您使用的是新版SDK,所以排除旧版是合理的。请尝试重新构建项目,看是否解决了重复类的问题。</think>根据错误信息,您的项目同时包含了两个版本的EZVIZ SDK库(`com.ezviz.sdk:ezviz-sdk:4.9.1.1` 和 `io.github.ezviz-open:ezviz-sdk:5.20`),导致类名冲突。以下是解决方案: ### 解决方案 修改`build.gradle`文件中的依赖项,排除旧版SDK的冲突类: ```groovy dependencies { implementation 'androidx.appcompat:appcompat:1.4.1' implementation 'com.google.android.material:material:1.5.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.3' implementation 'androidx.legacy:legacy-support-v4:1.0.0' // 解决冲突:排除旧版SDK implementation ('io.github.ezviz-open:ezviz-sdk:5.20') { exclude group: 'com.ezviz.sdk', module: 'ezviz-sdk' } implementation ('com.ezviz.sdk:ezuikit:2.2.1') { exclude group: 'com.ezviz.sdk', module: 'ezviz-sdk' } implementation 'com.google.code.gson:gson:2.8.5' implementation 'com.squareup.okhttp3:okhttp:4.9.1' implementation "androidx.media3:media3-exoplayer:1.3.1" implementation "androidx.media3:media3-exoplayer-hls:1.3.1" implementation "androidx.media3:media3-ui:1.3.1" implementation "androidx.media3:media3-datasource-okhttp:1.3.1" coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' implementation "androidx.media3:media3-common:1.3.1" } ``` ### 关键修改说明: 1. **排除旧版SDK依赖**: - 使用`exclude`指令移除`ezuikit`中传递依赖的旧版SDK(`com.ezviz.sdk:ezviz-sdk`) - 确保只保留新版SDK(`io.github.ezviz-open:ezviz-sdk:5.20`) 2. **冲突根源分析**: ```mermaid graph TD A[ezuikit:2.2.1] --> B[旧版SDK 4.9.1.1] C[显式依赖] --> D[新版SDK 5.20] B --> E[重复类冲突] D --> E ``` 通过排除旧版SDK的传递依赖,解决类重复问题。 3. **版本兼容性**: - `ezuikit:2.2.1`应兼容新版SDK 5.20 - 如果遇到API不兼容问题,需升级`ezuikit`到匹配5.20的版本 ### 验证步骤: 1. 执行Gradle同步 2. 清理项目:`Build > Clean Project` 3. 重新构建:`Build > Rebuild Project` 4. 检查重复类错误是否消失 ### 备选方案 如果仍存在冲突,可强制使用新版SDK: ```groovy configurations.all { resolutionStrategy { force 'io.github.ezviz-open:ezviz-sdk:5.20' eachDependency { details -> if (details.requested.group == 'com.ezviz.sdk') { details.useTarget 'io.github.ezviz-open:ezviz-sdk:5.20' } } } } ``` ### 常见问题排查: 1. 检查`gradle.properties`是否启用新依赖解析: ```properties android.enableJetifier=true android.useAndroidX=true ``` 2. 查看完整依赖树: ```bash ./gradlew :app:dependencies --configuration releaseRuntimeClasspath ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值