仅代表个人意见与个人所遇到的问题
1.导入多个依赖项目
下图是原Eclipse的项目,其中IM是主项目,其他都是依赖库
2.打开AS如图(我的是1.5正式版)
新建一个新文件夹用于保存转换后的项目。
不勾上代表命名按原来的命名。不然会变成小写驼峰式
其他一直默认。有一个步骤跳出gradle 选择推荐的(recommend),确定之后等待。。。
遇到问题:
Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/ASL2.0
File1: D:\MYJSON\app\libs\jackson-core-asl-1.9.13.jar
File2: D:\MYJSON\app\libs\jackson-mapper-asl-1.9.13.jar
在android {} 加个配置,忽略文件的
packagingOptions { /*exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt'*/ exclude'META-INF/DEPENDENCIES.txt' exclude'META-INF/LICENSE.txt' exclude'META-INF/NOTICE.txt' exclude'META-INF/NOTICE' exclude'META-INF/LICENSE' exclude'META-INF/DEPENDENCIES' exclude'META-INF/notice.txt' exclude'META-INF/license.txt' exclude'META-INF/dependencies.txt' exclude'META-INF/LGPL2.1' }
由于HttpClient不推荐使用,即使使用也是已过时,因此会报错编译不通过,报错“找不到org.apache.http.HttpEntity”
需要在android{}加上如下
android{ useLibrary 'org.apache.http.legacy' }
Eclipse可以智能的把UTF-8+BOM文件转为普通的UTF-8文件,Android Studio还没有这个功能,所以使用Android Studio编译UTF-8+BOM编码的文件时会出现” 非法字符: '\ufeff' “之类的错误。bian解决AndroidStudio添加ProjectLibary后在编译时遇到的各种问题之解决方式索引(finished with non-zero exit value and so on...)
其他多jar包重复问题
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_05\bin\java.exe'' finished with non-zero exit value 3
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_51\bin\java.exe'' finished with non-zero exit value 2
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/v7/view/CollapsibleActionView.class
Error:Execution failed for task ':app:transformClassesWithInstantRunForDebug'.
> com/baidu/mapapi/search/sug/OnGetSuggestionResultListener
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_51\bin\java.exe'' finished with non-zero exit value 2
这个问题主要的原因就是引入的Libary与现有的工程中的某些Libs重复了,请详细检查并确保所有使用的lib只有一份,比如v4,v7,Gson...,该问题的具体答案请参见: http://stackoverflow.com/questions/32889059/android-studio-1-4-and-vector-image/32889565#32889565
,另,使用android的官方支持库请参见: http://developer.android.com/tools/support-library/features.html
Finished with Non Zero Exit Value 3:
具体解决方式请参见: https://stackoverflow.com/questions/29720831/finished-with-non-zero-exit-value-3/30930734#30930734?newreg=12a5055f9ee3430f9591837a30307c1f
,另需注意compile
Gradle DSL method not found: 'testCompile()'
http://stackoverflow.com/questions/25252637/gradle-build-script-error-occurs-when-i-attempt-to-use-testcompile-in-dependan
Android Studio 2.0 Preview: ':app:transformClassesWithInstantRunForDebug' FAILED
http://stackoverflow.com/questions/34059352/android-studio-2-0-preview-apptransformclasseswithinstantrunfordebug-failed
Error:Execution failed for task ':app:clean'.
> Unable to delete file: F:\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\23.1.0\jars\classes.jar
请在重启AS的时候删除这个文件即可
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/v7/view/CollapsibleActionView.class
这个问题是因为在工程中既有本地的lib.jar文件,又有compile链接,请确认全部统一即可。
当Android Studio中编译java方面的代码,出现类似的警告:
时,去项目对应的build.gradle中添加配置:
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
}