记录安卓IDE在使用过程中遇到的各种疑难杂症:
AS3.2在新建项目时编译时间过久:
1,项目build.gradle中repositories和allprojects,分别在jcenter()之前加上mavenCentral()
2,gradle.properties末尾加上:android.injected.testOnly=false
3,sync项目
AS3.2导入第三方jar包并修改jar调用顺序,使导入的jar包优先于android.jar
1.复制需要导入的jar包到工程的libs目录下,选择add ad library
2,进入project structure,将jar包对应的scope选项设置成provided或者compileOnly并将jar包的顺序调整到最上面
3,找到项目根目录的build.gradle,找到allprojecs{} 标签,并添加如下代码,注意修改jar包名称为实际名称
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs.add('-Xbootclasspath/p:app/libs/jar包名称.jar')
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
4,找到app目录下的build.gradle,加入下面这段代码,作用是将type=jdk的android.jar移动到最后,这样才能使jar包中的api优先于android.jar调用
preBuild {
doLast {
def imlFile = file(project.name + ".iml")
println 'Change ' + project.name + '.iml order'
try {
def parsedXml = (new XmlParser()).parse(imlFile)
def jdkNode = parsedXml.component[1].orderEntry.find { it.'@type' == 'jdk' }
parsedXml.component[1].remove(jdkNode)
def sdkString = "Android API " + android.compileSdkVersion.substring("android-".length()) + " Platform"
new Node(parsedXml.component[1], 'orderEntry', ['type': 'jdk', 'jdkName': sdkString, 'jdkType': 'Android SDK'])
groovy.xml.XmlUtil.serialize(parsedXml, new FileOutputStream(imlFile))
} catch (FileNotFoundException e) {
// nop, iml not found
}
}
}
导入系统framework.jar
1,将framework.jar得到到项目的libs目录下并依赖
2,项目根目录下的build.gralde添加(注意jar包名和app的修改)
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs.add('-Xbootclasspath/p:app/libs/jar包名称.jar')
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
3,在app目录下的build.gradle内的dependents标签内添加
provided files("libs/framework.jar")
maven仓库 阿里云地址
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
AS3.2:Error:The number of method references in a .dex file cannot exceed 64K.
引入: compile 'com.android.support:multidex:1.+' 修改Application extends MultiDexApplication;
在build.gradle defaultConfig中加入:
defaultConfig {
multiDexEnabled true
}
Eclipse打包apk时报错:Unknown error: Unable to build: the file dx.jar was not loaded from the SDK folder!