项目从eclipse移植到studio中遇到的问题整理
概念
eclipseworkspace--->studioproject
eclipseproject--->studiomodule
step1:
eclipse导出
export-->Android-->GenerateGradleBuildfiles
-->next-->next-->勾选项目next-->forceoverridingofexistingfiles-->finish
step2:
studio导入项目
File-->New-->ImportProject-->选择目录,选择buildgradle文件.
遇到的问题
gradle版本号相关
gradle文件夹-->wrapper-->gradle-wrapper.properties文件内
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
版本号要跟本地gradle文件版本号对应
build.gradle文件内dependencies { classpath 'com.android.tools.build:gradle:2.1.2' }版本号也要跟本地gradle版本号对应<感觉是大于等于的关系即可>
代码报错相关
问题:httpclient提示找不到类<android6.0不支持这个了>
方法: build.gradle文件内dependencies { android { useLibrary 'org.apache.http.legacy' } }
红色字体就是引入httpclient相关的lib工程
问题:AndroidStudio非法字符:\65279
方法:
step1.FileEncoding-->GBK-->Convert;
step2.FileEncoding-->UTF-8-->Convert;
原理大概是eclipse的是utf-8bom格式,需要在studio先转成gbk,再转成utf-8.
问题:android.util.FloatMath找不到符号
方法:FloatMath换成Math
原理这个类已经过时了
其他问题暂未发现
==================================================================================
引入so文件
还是build.gradle文件内,
添加
task nativeLibsToJar(type: Zip, description: 'create a jar archive of the native libs') { destinationDir file('$buildDir/native-libs')//打包的目标目录 baseName 'native-libs'//jar的文件名 extension 'jar' from fileTree(dir: 'libs', include: '**/*.so') into 'lib/' } //Gradle低版本用Complie,高版本用JavaCompile tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn(nativeLibsToJar) }
dependencies { compile fileTree(dir: 'libs', include: '*.jar') compile fileTree(dir: '$buildDir/native-libs', include: 'native-libs.jar') android { useLibrary 'org.apache.http.legacy' } }
==================================================================================
想引入jar包,正常complie后,发现总是提示'Failedtoresolve:xxxxx'
检测路径没问题,网上搜了下,一哥们eclipse转studio的时候遇到相同的问题,
托他的福,解决了问题
build.gradle文件里加上
allprojects { repositories { jcenter() } }
fixed!
这边eclipse版本号Mars.2Release(4.5.2)
studio版本号2.1.2
java版本号1.7
个人感觉,gradle相关的版本号得对应好,其他没什么~