我的Android武功秘籍

Eclipse换到Studio遇到的一些问题

2017-06-16  本文已影响57人  白银之火

新入职了一家公司,发现居然还是用 Eclipse 开发,开发工具岂有倒退的道理,于是立马着手将项目导入到 Studio 。

遇到了一些问题记录一下

问题 1:

Error:Execution failed for task ':app:processDebugManifest'.
>Manifest merger failed with multiple errors, see logs.

解决方法:
一般是Manifest清单文件有误,会标出行数和更改建议。
查看 Messages 点击 Gradle Console,按照建议改就行了。

Eclipse 在清单文件中检查不是非常严格,所以一些权限重复声明等错误会忽略,不影响编译。而 Studio 默认的检查会比较严格,不把错误修改会导致编译失败。

问题 2:

Error:(395, 14) 错误: 找不到符号
符号: 方法 addOnPageChangeListener(<匿名OnPageChangeListener>)
位置: 类型为BannerLayout.IndexViewPager的变量 pager

解决办法:将addOnPageChangeListener()改为setOnPageChangeListener()。

大概原因是 support-v4 的版本问题,现在很少出现了,只有在旧版本的 v4 包才会出现。因为 Eclipse 的 v4 包都是通过复制到 lib 里,Studio 已经变成 compile 依赖,一般不会出现这个问题。

问题 3:

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/v4/os/ParcelableCompat.class

解决办法:看到 ZipException 和 duplicate 大概就知道是包重复冲突,查看一下module是不是有重复导入v4包,版本改成一致

问题 4:

Error:(27) Error: "umeng_socialize_share_content" is not translated in "zh" (Chinese) [MissingTranslation]

从字面上看就是缺少了中文翻译,导致编译检查失败

解决办法有几种:

<?xml version="1.0" encoding="utf-8"?>
<resources
    xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="MissingTranslation" >
</resources>
android {
        lintOptions {
        checkReleaseBuilds false
        // Or, if you prefer, you can continue to check for errors in release builds,
        // but continue the build even when errors are found:
        abortOnError false
        }
}

当然,这三个方法都是忽略检查来通过编译的。
根本原因还是缺少了 valuse-zh 的翻译字段,要么把 valuse-zh 删了,要么把缺少翻译的字段补全也可解决。

总结

Studio 在 2.0 以后对 Eclipse 的导入功能加强了很多,基本不会出现什么大问题,没花多少时间就成功转换到 Studio 中了。现在已经2017年,开发 android 已经不是推荐而是必须使用 Studio 了,如果还在使用 Eclipse 应该马上换到 Studio 。

欢迎交流讨论。

上一篇 下一篇

猜你喜欢

热点阅读