android 环境问题

来源:互联网 发布:yap-yum的体位图 编辑:程序博客网 时间:2024/06/17 23:55

一、 
Error:Execution failed for task ‘:app:transformClassesWithPreJackPackagedLibrariesForDebug’.

com.android.build.api.transform.TransformException: com.android.jack.api.ConfigNotSupportedException: Jack requires Build Tools 24.0.0 or later

一般,此错误是由android在7.0才开始支持jdk1.8引起的。 
defaultConfig { 
applicationId “com.ling.tools.toolsproject” 
minSdkVersion 16 
targetSdkVersion 23 
versionCode 1 
versionName “1.0” 
testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner” 
jackOptions { enabled true } //将.java文件编译成.jack文件再编译成.dex文件 。这个方法只在Android 7.0才支持. 默认是通过javac将 Java代码(.java)编译成 .class,再通过dx将 .class编译成 .dex 
}

解决方法:将jackOptions{enable true } 改为false 。

另:使用jack(jdk1.8) 
android { 
… 
defaultConfig { 
… 
jackOptions { 
enabled true 


compileOptions { 
sourceCompatibility JavaVersion.VERSION_1_8 
targetCompatibility JavaVersion.VERSION_1_8 

}

二、Error:Failed to open zip file. Gradle’s dependency cache may be corrupt 
这里写图片描述

在gradle文件夹下的gradle-wrapper.properties文件中,将gradle版本换成本机的版本 
如:原来版本 
`distributionUrl=https://services.gradle.org/distributions/gradle-2.4-all.zip,将其改为 gradle-2.14.1-all.zip。

三、解决方法:在Grade.properties中将http换为https。 
整体设置为: 
systemProp.http.proxyHost=some.proxy.adress.com 
systemProp.http.proxyPort=3128 
systemProp.https.proxyHost=some.proxy.adress.com 
systemProp.https.proxyPort=3128

四、Android Studio检测不到真机 
可能原因: 
1、没有USB驱动; 
2、数据线问题。有些数据线只能用于充电; 
3、adb,可能有别的软件和Android Studio 都在使用adb进程。如同时使用酷狗和Android Studio(我就是这个原因)。关掉酷狗,并在进程里结束掉adb就好了。

五、webView在安卓5.0以上的手机,不支持http与https的混合协议 
解决方案: 
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); 
}

六、 com.android.dex.DexException: Multiple dex files define…………. 
在我的代码中,发现是**重复引用**jar包导致的。 
出现情况: 项目中导入并引用了一个libary,在libary中引用了Glide的jar包,然后在主工程中也引用了Glide的jar包。做法:删掉主工程中的jar包。

七、Error:Jack is required to support Java 8 language features. Either enable Jack or remove sourceCompatibility JavaVersion.VERSION_1_8. 
解决方法: 
defaultConfig { 
applicationId “com.xxx” 
minSdkVersion 19 
targetSdkVersion 24 
versionCode 1 
versionName “1.0” 
jackOptions { 
enabled true 


在defaultConfig中添加红色部分即可。

Jack 是 Java Android Compiler Kit 的缩写,它可以将 Java 代码直接编译为 Dalvik 字节码,并负责 Minification, Obfuscation, Repackaging, Multidexing, Incremental compilation。它试图取代 javac/dx/proguard/jarjar/multidex 库等工具。这是Android 自己的 Java 编译器。Android7.0(API24)在对JAVA8的支持上,需要使用新的编译器。

原创粉丝点击