Task03:查找1

  1. 搜索插入位置
class Solution:
    def searchInsert(self, nums: List[int], target: int) -> int:
        if target < nums[0]or (len(nums) == 1 and target == nums[0]):  return 0
        if target > nums[-1]: return len(nums)
        for i in range(len(nums) - 1):
            if nums[i] == target:
                return i
            elif nums[i] < target <= nums[i + 1]:
                return i +  1
  1. 快乐数
def isHappy(self, n: int) -> bool:

    def get_next(n):
        total_sum = 0
        while n > 0:
            n, digit = divmod(n, 10)
            total_sum += digit ** 2
        return total_sum

    seen = set()
    while n != 1 and n not in seen:
        seen.add(n)
        n = get_next(n)

    return n == 1
  1. 同构字符串
class Solution:
    def isIsomorphic(self, s: str, t: str) -> bool:
        for i in range(len(s)):
            if s.index(s[i]) != t.index(t[i]):
                return False
        return True 

4.单词规律

def wordPattern(self, pattern: str, str: str) -> bool:
    res=str.split()
    return list(map(pattern.index, pattern))==list(map(res.index,res))
  1. 两个数组的交集
class Solution:
    def set_intersection(self, set1, set2):
        return [x for x in set1 if x in set2]
        
    def intersection(self, nums1, nums2):
        """
        :type nums1: List[int]
        :type nums2: List[int]
        :rtype: List[int]
        """  
        set1 = set(nums1)
        set2 = set(nums2)
        
        if len(set1) < len(set2):
            return self.set_intersection(set1, set2)
        else:
            return self.set_intersection(set2, set1)
<think>嗯,我现在遇到了Android Studio编译报错的问题,错误是Execution failed for task ':app:checkDebugDuplicateClasses',提示有重复的类。用户引用了几个相关的资料,我需要仔细分析这些信息,找出解决方案。 首先,用户提供的错误信息显示有两个不同的jar包包含了相同的类com.tencent.ijk.media.exo.BuildConfig。一个是LiteAVSDK_Player的7.5.9307版本,另一个是另一个同名的jar包。这说明项目里可能同时引入了这两个库,导致冲突。根据引用[4],解决办法是检查build.gradle中的依赖项,避免重复引入相同的库或者使用不同的方式引入。 接下来,用户提到他们的Gradle版本是7.4,排除了版本过低的可能性。引用[3]中的错误虽然不同,但可能涉及到依赖冲突的问题,不过这里主要关注的是重复类的问题。 根据引用[4],建议检查build.gradle中的依赖声明方式。例如,使用compile project可能导致问题,而改用fileTree引入本地libs目录中的jar包可能解决冲突。需要检查是否有模块被重复引入,或者是否有多个地方引用了同一个库的不同版本。 可能的步骤包括: 1. 检查所有依赖项,查找是否有重复的库,特别是LiteAVSDK_Player的不同版本。 2. 确保使用implementation而不是过时的compile关键字。 3. 排除冲突的依赖,使用exclude语法。 4. 清理和重建项目,有时候临时文件可能导致问题。 5. 使用Gradle命令查看依赖树,找出冲突的具体位置。 另外,用户需要检查是否在多个地方引入了同一个库,比如在libs目录下直接放置jar包,同时又在Gradle中通过implementation引入远程依赖,这样也会导致重复类的问题。需要统一依赖来源,移除重复的依赖项。 如果问题依然存在,可能需要升级相关库的版本,或者联系库的维护者解决版本冲突的问题。总之,核心是找到重复引入的库,并统一它们的版本或来源。</think>针对Android项目中$app:checkDebugDuplicateClasses$任务失败的解决方案,请按照以下步骤排查处理: ### 一、问题根源分析 错误信息显示存在重复类$com.tencent.ijk.media.exo.BuildConfig$,由两个不同依赖包引入: - jetified-LiteAVSDK_Player:7.5.9307 - LiteAVSDK_Player_7.5.9307 这表明项目同时通过不同方式引用了相同库的不同打包版本,导致类重复[^1][^4]。 ### 二、分步解决方案 #### 1. 检查依赖声明方式 在$build.gradle$文件中,**优先使用标准依赖声明**: ```groovy dependencies { // 错误方式:可能导致重复依赖 // compile project(path: ':LiteAVSDK_Player') // 正确方式:统一使用implementation implementation 'com.tencent.liteav:LiteAVSDK_Player:7.5.9307' } ``` 若存在本地JAR引用,改用: ```groovy implementation fileTree(include: ['*.jar'], dir: 'libs') ``` #### 2. 排除重复依赖 在依赖声明中添加排除规则: ```groovy implementation('com.tencent.liteav:LiteAVSDK_Player:7.5.9307') { exclude group: 'com.tencent.ijk.media.exo', module: 'BuildConfig' } ``` #### 3. 验证依赖树 执行Gradle命令查看依赖关系: ```bash ./gradlew :app:dependencies --configuration debugRuntimeClasspath ``` 重点检查输出中$LiteAVSDK_Player$的出现次数和来源路径。 #### 4. 清理构建缓存 在Android Studio中执行: - Build > Clean Project - File > Invalidate Caches / Restart #### 5. 强制统一版本号 在$gradle.properties$中添加版本强制: ```properties android.enforceUniquePackageName=false ``` ### 三、预防措施 1. 使用$implementation$代替$compile$等旧依赖声明 2. 定期执行依赖分析: ```bash ./gradlew app:check ``` 3. 保持Gradle插件版本为最新稳定版(当前推荐7.4+)[^2] ### 四、扩展验证方法 若仍出现类似引用[3]的kapt错误,可尝试: ```groovy kapt { useBuildCache = true keepJavacAnnotationProcessors = true } ``` 相关问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值