把Eclipse项目转化AndroidStudio项目中遇到的问题

来源:互联网 发布:数据分析师条件 编辑:程序博客网 时间:2024/04/29 19:07

今天把Eclipse项目转化AndroidStudio项目中遇到的问题,记录一下


导入进去之后,就看到这样的加载画面。



refreshing vcs history   这肯定是因为之前上传到svn服务器过。

因为加载的时间久了点,我就点击进度条后面红叉停止了加载。


注:如果要重新上传请删掉之前项目的隐藏文件.svn,这个.svn几乎每个目录下都有,最好搜索然后一并删除,

还有如果上传不了,svn format选择的时候1.6或者1.7,有时候1.8有问题上传不上去。


还有这样出现的一个错误提示

URL: svn: E155036: Please see the 'svn upgrade' command svn: E155036: The working copy at 'D:\project_as_1\MyUyac\ElegantLife2.1.0' is too old (format 12) to work with client version '1.9.4 (r1740329)' (expects format 31). You need to upgrade the working copy first.


暂时先不管这个问题   先看下能不能运行

然后运行 ,就报错了。


Error:Execution failed for task ':social_sdk_library_project:transformResourcesWithMergeJavaResForRelease'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/maven/org.twitter4j/twitter4j-core/pom.xml
File1: D:\AndroidStudioProjects\Uyac2.3\social_sdk_library_project\libs\twitter4j-core-4.0.4.jar
File2: D:\AndroidStudioProjects\Uyac2.3\social_sdk_library_project\libs\SocialSDK_twitter.jar


这是第一个错误,查了下错误原因:

错误原因 

项目依赖方法是并集jar包,Twitter4j 包包含了httpmime包。


解决办法 
删除httpmime包(实际未解决,出现下面这个错误) 

出现错误参考点击打开链接


好吧接着报错。


问题:

D:\project_as_1\MyUyac\ElegantLife2.1.0\build\intermediates\res\merged\debug\values-v23\values-v23.xml
Error:(4) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
Error:(34) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Button.Colored'.


解决:将 compileSdkVersion23调成23就好了  

注意:这里说一下compileSdkVersion、buildToolsVersion、targerSdkVersion最好保持一致,比如下图targetSdkVerion最好改为23.




接着继续运行

错误:



问题 : 没有httpclient包

Error:(5, 23) 错误: 程序包org.apache.http不存在
Error:(118, 34) 错误: 找不到符号


解决:找到sdk下的httpclient包,放在主lib下面。下图org.apache.http.legacy.jar 就是httpclient包。


重要:但是这样虽然不报错了,但是很容易和其它jar冲突,造成重复,比如和okhttp。

好的办法是:在android{}中加上 useLibrary'org.apache.http.legacy' 这样就不会报错了。



问题:


错误:

com.umeng.socialize.activity 不存在


解决:这个是我自己的原因,不小心SocialSDK_alipay.jar删掉了。


好吧继续,还是报错。天!!


错误:


错误原因:是说/apache/commons/codec/Decoder; 这个类重复了。只要有finished with non-zero就是有重复的。

Error:Error converting bytecode to dex:

Cause: com.android.dex.DexException: Multiple dex files define Lorg/apache/commons/codec/Decoder;
:ElegantLife2.1.0:transformClassesWithDexForDebug FAILED
Error:Execution failed for task ':ElegantLife2.1.0:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_60\bin\java.exe'' finished with non-zero exit value 2


解决:Lorg/apache/commons/codec/Decoder;  我这里是httpclientokhttp冲突了。这里依照上面的办法。

好的办法是:在android{}中加上 useLibrary 'org.apache.http.legacy' 这样就不会报错了。


事情还没有完,我这里还在报错。

问题:


错误原因:我也不知道

Error:Execution failed for task ':ElegantLife2.1.0:transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/maven/com.squareup.okio/okio/pom.xml
File1: D:\project_as_1\MyUyac\ElegantLife2.1.0\libs\okio-1.6.0.jar
File2: D:\project_as_1\MyUyac\ElegantLife2.1.0\libs\com.umeng.message.lib_v2.5.0.jar


解决:在android{}里面加上代码

packagingOptions {        exclude 'META-INF/NOTICE' // will not include NOTICE file        exclude 'META-INF/LICENSE' // will not include LICENSE file        exclude 'META-INF/maven/com.squareup.okio/okio/pom.xml'        exclude 'META-INF/maven/com.squareup.okio/okio/pom.properties'    }





1 0
原创粉丝点击