从Eclipse导入项目到Android Studio后图片模糊及API19编译报错问题
我来帮你拆解这两个迁移后遇到的问题,一步步来解决:
问题1:从Eclipse迁移到Android Studio后图片模糊
这大概率是两个IDE对Drawable资源的处理逻辑差异导致的,按下面的步骤排查:
- 检查Drawable目录结构:Eclipse里你可能把所有图片都放在了
drawable目录(默认对应mdpi密度),而Android Studio会严格按屏幕密度分类资源(mdpi/hdpi/xhdpi/xxhdpi等)。如果高清原图被放到了低密度目录,在高分辨率设备上会被强制放大,自然就模糊了。建议把不同分辨率的图片放到对应密度的目录里;如果只有一套原图,优先放到最高密度目录(比如xxhdpi),让系统自动向下适配缩放。 - 检查图片压缩配置:看看你的
build.gradle里有没有开启不必要的资源压缩。比如debug模式下如果开了shrinkResources true,可能会自动压缩图片导致画质损失。可以暂时关掉这个选项试试:android { buildTypes { debug { shrinkResources false minifyEnabled false } } } - 检查ImageView的缩放模式:如果你的ImageView用了
fitXY这种强制拉伸的scaleType,会让图片变形模糊。换成centerCrop(保持比例裁剪)或fitCenter(保持比例居中)这类更合理的模式,看看效果。 - 确认导入时图片未被缩放:Android Studio导入资源时,有时候会弹出“是否缩放图片到合适尺寸”的提示,如果不小心选了“是”,原图可能被压缩变小,导致显示模糊。可以重新导入原图,跳过自动缩放步骤。
问题2:Android 4.4(API 19)安装时Jar合并报错
这个报错transformClassesWithJarMergingForDebug通常是重复类冲突或者方法数超限导致的,按下面步骤处理:
- 检查重复依赖/Jar包:Eclipse里你可能手动添加了很多Jar到
libs目录,导入Android Studio后,Gradle又自动引入了相同的库(比如support库、Gson、OkHttp等),导致类重复。先看看libs目录里有没有重复的Jar(比如同时有gson-2.7.jar和gson-2.8.jar),删掉旧的;再检查build.gradle的dependencies块,有没有既加了compile fileTree(dir: 'libs', include: ['*.jar'])又加了远程依赖的情况,比如同时引入了Jar和compile 'com.google.code.gson:gson:2.8.0',删掉其中一个即可。 - 查看依赖树找冲突:运行Gradle命令查看完整依赖树,找出重复的依赖:
- Windows:在终端执行
gradlew.bat easyRewardz:dependencies - Mac/Linux:执行
./gradlew easyRewardz:dependencies
找到重复的库后,用exclude排除多余的。比如某个第三方依赖引入了重复的support库,可以这样写:
compile('com.example:some-library:1.0') { exclude group: 'com.android.support', module: 'support-v4' } - Windows:在终端执行
- 开启MultiDex支持:API 19及以下的系统默认不支持MultiDex,如果你的项目方法数超过了65536,就会触发Jar合并错误。开启方法:
- 在
build.gradle里开启MultiDex:android { defaultConfig { multiDexEnabled true } } dependencies { compile 'com.android.support:multidex:1.0.3' } - 让你的Application类继承
MultiDexApplication,或者如果有自定义Application,重写attachBaseContext方法:@Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); }
- 在
内容的提问来源于stack exchange,提问作者saurabh nanda
相关产品推荐
相关产品推荐

