【Android】升级ADT 22 引发的错误

本文详细介绍了在使用ADT22升级后遇到项目运行问题的解决方案,包括解决未能解决超级类问题和配置AndroidPrivateLibraries库等步骤。通过此教程,读者可以快速定位并修复相关错误,确保项目的顺利编译与运行。

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

今天心血来潮,又把ADT升级了一下,升级到了ADT 22,悲催的发现项目用不了了(能编译通过,运行出错)。

 

声明
欢迎转载,但请保留文章原始出处:) 
博客园:http://www.cnblogs.com
农民伯伯: http://over140.cnblogs.com 

 

正文

错误一:(警告)

 Unable to resolve superclass of Landroid/support/v4/app/_ActionBarSherlockTrojanHorse;

错误二: (错误)

Activity也直接Caused by: java.lang.ClassNotFoundException 

错误原因:

 ADT 22中新增了Export,你会发现新增了Android Private Libraries库,默认可能Export没有选中,如图:

 

勾选、重新编译即可。此外还可能出现Library工程中引用的Libs编译时不会加到主工程的问题,也是这个原因造成的,选中即可。

 

结束

感谢晓明同学指点,自己重装两遍也没找到问题。 

### 关于 `Cannot resolve symbol 'ActivityCompat'` 问题的解决方案 当开发者遇到 `Cannot resolve symbol 'ActivityCompat'` 的错误提示时,通常是因为 Android 开发环境中的某些依赖项未正确配置或版本不兼容所导致。以下是针对此问题的具体分析和解决方法: #### 1. **确认支持库的引入** 如果项目中使用的是旧版的支持库(Support Library),则需要确保在项目的 `build.gradle` 文件中已正确定义了所需的依赖项。例如,在升级到新的 ADT 或 Gradle 插件版本后,可能需要更新支持库的版本号。 ```gradle dependencies { implementation 'androidx.appcompat:appcompat:1.6.0' } ``` 上述代码片段展示了如何通过 `implementation` 添加最新的 AppCompat 支持库[^2]。请注意,这里使用的包名前缀为 `androidx.` 而不是传统的 `com.android.support:`,这是因为 Google 推出了 Jetpack 组件来替代原有的 Support 库。 #### 2. **迁移至 AndroidX** 如果尚未完成从传统 Support 库向 AndroidX 的迁移,则可能会引发此类符号解析失败的问题。可以通过启用 Android Studio 提供的功能来进行自动转换: - 执行菜单命令:`Refactor -> Migrate to AndroidX...` - 此操作会修改所有的 XML 和 Java/Kotlin 文件以适配新命名空间,并同步更新 build 配置文件[^3]。 #### 3. **清理并重建项目** 有时即使完成了必要的更改,IDE 缓存仍可能导致编译器无法识别新增加或者替换掉的类定义。因此建议执行以下步骤清除缓存后再尝试构建应用: - 在 Android Studio 中选择 `File -> Invalidate Caches / Restart...` - 然后重新启动 IDE 并运行 `Build -> Clean Project` 及 `Rebuild Project`. #### 4. **验证 SDK 工具安装情况** 确保本地计算机上已经下载并设置了对应 API Level 下的所有必需组件。打开 SDK Manager 检查是否有任何缺失的部分被标记出来等待更新;特别是那些涉及最新 Play Services 功能扩展以及 NDK rXX 版本的内容[^4]。 #### 5. **检查 ProGuard/R8 设置** 对于发布模式下的应用程序来说,混淆处理也可能成为阻碍正常加载外部资源的原因之一。查看 proguard-rules.pro 是否意外移除了关键部分的数据成员声明语句。如果是这种情况,请适当调整保留规则以免破坏框架结构完整性[^5]。 ```pro # Keep all classes under androidx package unchanged during obfuscation process. -keep class androidx.** { *; } ``` 以上措施综合起来应该能够有效应对大多数由于 ADP 升级而引起的 ActivityCompat 符号不可见状况的发生。 ```java import android.os.Bundle; import androidx.activity.ComponentActivity; public class MainActivity extends ComponentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Example usage of ActivityCompat methods here... } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值