美文网首页
ADT项目转AS项目

ADT项目转AS项目

作者: beatzcs | 来源:发表于2018-01-09 18:48 被阅读0次

公司的老项目需要更新摄像头监控的一个SDK,是使用Eclipse开发的一个Android项目,Eclipse已搁置许久不想在动,便导入AS继续修改,更改过程中遇到一些问题做下总结。(AS版本2.2.3)

1.项目依赖库导入问题

在ADT中,依赖库的配置是写在project.properties中,导入是需提前手动更改依赖库的路径,错误的情况下是不能导入项目到AS中。


project.properties.png

项目导进来之后,来不及兴奋便一坨坨的异常甩脸上了...

2.项目依赖库冲突问题
Error:Execution failed for task ':dhscs:processDebugManifest'.
> Manifest merger failed with multiple errors, see logs
Error:
    Attribute application@icon value=(@drawable/ic_logo) from AndroidManifest.xml:62:9-41
    is also present at [dhscs:aframework:unspecified] AndroidManifest.xml:13:9-45 value=(@drawable/ic_launcher).
    Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:59:5-708:19 to override.
exception.jpg

错误原因:AndroidStudio的Gradle插件默认会启用Manifest Merger Tool,若你导入的Library项目中也定义了与主项目相同的属性,则此时会合并失败,并报上面的错误。
解决办法:找到AndroidManifest.xml,在manifest标签中加上

xmlns:tools="http://schemas.android.com/tools"

在application标签中加上

tools:replace="android:icon"

如果label和theme属性导致冲突,在application标签中加上

tools:replace="android:icon,label,android:theme"

解决,没问题先跑跑看。啪~又是一坨...

3.项目jar包问题
jar.png

项目中用的是v4的jar包,AS自动导入了 compile 'com.android.support:support-v4:18.0.0',和原项目的jar包不同,只能找到原项目的jar包手动导入,问题解决,继续跑。
竟然真的跑起来了...但问题还是没有止步!

4.项目桌面图标出现了两个一样的

原因:多个Activity 中添加android.intent.category.LAUNCHER 造成的
找到依赖的Library,发现


Library.AndroidManifest.png

好,注释掉!

5.Android7.0 Detected problems with app native libraries

这可以说是一个BUG,也可以说不是。有一些过时的SDK更新了就不会出现了,这也是我这次要做的任务,改完之后就消失了。
贴个链接自行研究 detected problems with app native libraries

text relocations.jpg

当然还有一些在修改过程中发现的一些问题:

6.项目的JDK问题

原来的项目使用的是1.6的JDK,所以在1.6中不会出现的问题在其他版本中可能会报错。


jdk.png

解决方法:在build.gradle中android里加入

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_6 //相应的JDK版本
        targetCompatibility JavaVersion.VERSION_1_6 //相应的JDK版本
}

或者选中项目按F4,找到Properties - Source Compatibility和Target Compatibility,都改成相应的JDK版本

7.项目的.9图片问题

Eclipse项目中可以直接使用.9图片,在AS中新增了一个对.9图片的安全检查机制,要求.9图片四条边都要进行描边。
解决办法:在build.gradle中android里加入

// 取消掉系统对.9图片的检查
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
至此,项目已经可以完美的跑起来了。 beautiful.jpg

相关文章

网友评论

      本文标题:ADT项目转AS项目

      本文链接:https://www.haomeiwen.com/subject/hvcgnxtx.html