最近将自己以前记录的AndroidStudio 使用过程中遇到的问题整理了下,里面是我开发中遇到的问题和收集的已经验证过的方法,记录下来,方便以后查找,欢迎补充
1、AS导第三方项目一直在Building的解决方法
有时候当我们导入开源项目的时候 会卡顿甚至死机 这是因为我们本地已有的配置和开源项目的不一样 这时候Android studio就会去下载 而且下载是要翻墙的 所以会出现这种情况 那么我们怎么避免下载没用的资源呢 请看:
第一步:
打开 开源项目的这个文件(如图所示)
把红线画的这个 改成你 新建的项目或者已有的项目 对应的gradle-wapper.properties文件里一样的!
第二步:
把开源项目 根目录下的build.gradle里面的这个buildtools改成和你自己工程的一样!
第三步:
完成上面2个步骤,理论上可以open开源项目了,但是应该会报错。还有些东西要改!可以open以后在android studio里面改 ,也可以在open之前在文件目录里面改
把module、app目录对应build.gradle里面的buildToolsVersion 改成和你自己工程的一样!SdkVersion建议也改成一样的!
然后 把这几个依赖 如果有的话 改成一样的或者本地有的!(本地没有它就会去下载)
2、导入第三方库可能遇到的问题
1)、打不开项目工程----->将gradle文件重命名为gradle_,然后导库,点击buil.gradle,进入工程后在把名字改回来
2)、构建Gradle项目有2种形式
1.use the gradle wrapper 不建议使用,如果本地没有你导入项目的gradle 版本相同的包,会联网下载 gradle包
2.local gradle distribution
3、Java.lang.ClassNotFoundException:(原因未知)
Java .lang.RuntimeException: Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication: java.lang.ClassNotFoundException: Didn't find class "com.android.tools.fd.runtime.BootstrapApplication" on path: DexPathList[[zip file "/data/app/com.dlcoder.test.apk"],nativeLibraryDirectories=[/data/app-lib/com.dlcoder.test.apk, /vendor/lib, /system/lib]]
原因:
解决方法:去掉红色箭头指向的勾
4、Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> compileSdkVersion 'android-25' requires JDK 1.8 or later to compile.
原因:builTool 版本和 SDK Tool 版本不一致,compileSdkVersion 25需要JDK1.8,
解决方法:更新为最新版本
或修改 build.gradle 中以下配置,统一版本
compileSdkVersion 23
buildToolsVersion "23.0.3"
minSdkVersion 16
targetSdkVersion 23
compile 'com.android.support:appcompat-v7:23.2.0'
5、Error org.gradle.jvmargs=-Xmx1024m
错误行为:
Error:Unable to start the daemon process: could not reserve enough space for object heap.
Please assign more memory to Gradle in the project's gradle.properties file.
For example, the following line, in the gradle.properties file, sets the maximum Java heap size to 1,024 MB:
Error org.gradle.jvmargs=-Xmx1024m
Read Gradle's configuration guide
Read about Java's heap size
解决方案一:
修改项目gradle.properties文件,添加下面一行代码:
org.gradle.jvmargs=-Xmx512m -XX:MaxPermSize=512m
org.gradle.jvmargs=-Xmx512m -XX:MaxPermSize=512m
解决方案二:推荐,一次解决新建项目 jvm 问题
在个人文件夹( (C:/Users/username/.gradle 或 ~/.gradle))下创建 gradle.properties 文件,添加
org.gradle.jvmargs=-Xmx1024m -XX:MaxPermSize=256m,或则拷贝之前正常运行的项目的
6、Error:Could not get unknown property 'ANDROID_BUILD_SDK_VERSION' for project ':pagerSlidingTabStrip_lib' of type org.gradle.api.Project.
降低了下版本,as 2.2, gradle 2.10, android plugin version 2.1.2, small 1.0.0-beta9就没问题了,之前gradle用了2.14
7、Error:java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major错误解决
Error:java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0
Error:at java.lang.ClassLoader.defineClass1(Native Method)
Error:at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
Error:at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
Error:at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
Error:at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
Error:at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
Error:at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
Error:at java.security.AccessController.doPrivileged(Native Method)
Error:at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
Error:at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
Error:at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
Error:at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
Error:at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Error:Exception in thread "main"
Error:java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0
Error:at java.lang.ClassLoader.defineClass1(Native Method)
Error:at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
Error:at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
Error:at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
FAILURE: Build failed with an exception.
Error:at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
Error:at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
Error:at java.security.AccessController.doPrivileged(Native Method)
Error:at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
Error:at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
Error:at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
Error:at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
Error:at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Error:Exception in thread "main"
* What went wrong:
Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: 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_67\bin\java.exe'' finished with non-zero exit value 1
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
主要是因为 AS 的 buildToolsVersion 版本与Java JDK的版本不同所致,这样的错误而有两个解决办法,第一个是重装Java JDK,降到 JDK 1.7
第二种方法是,降低 buildToolsVersion 的版本 比如 buildToolsVersion"24.0.1" 降到 buildToolsVersion"23.0.3" 重新编译就OK了
8、Android Studio Gradle project “Unable to start the daemon process /initialization of VM”
可以解决
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this a
法一:
当在AndroidManifest.xml文件的application的节点设置了属性:
android:theme="@android:style/Theme.NoTitleBar
而Activity继承了ActionBarActivity就回出现上述错误,解决的办法就是让Activity去继承Activity而不是ActionBarActivity
改完之后删掉报错的部分,然后别忘了导入Activity包
法二:
在AndroidMenifest.xml中加入一句:
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
例子:
<activity
android:name="com.vmoksha.BaseActivity"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
然后在styles.xml中加入主题资源:
<style name="Theme.AppCompat.Light.NoActionBar" parent="@style/Theme.AppCompat.Light">
<item name="android:windowNoTitle">true</item>
</style>
9、处理Gradle中的文件下载慢的问题的?
使用阿里云的国内镜像仓库地址,就可以快速的下载需要的文件,修改项目根目录下的文件 build.gradle :
buildscript {
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
}
allprojects {
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
}
然后选择重新构建项目就可以了
10、Java.lang.ClassNotFoundException:(原因未知)
Java.lang.RuntimeException: Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication: java.lang.ClassNotFoundException: Didn't find class "com.android.tools.fd.runtime.BootstrapApplication" on path: DexPathList[[zip file "/data/app/com.dlcoder.test.apk"],nativeLibraryDirectories=[/data/app-lib/com.dlcoder.test.apk, /vendor/lib, /system/lib]]
原因:
解决方法:去掉红色箭头指向的勾
11、Error:Execution failed for task ':transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/google/gson/annotations/Expose.class
重复引入了第三方jar的意思。即本地已经存在引入的lib,然后又配置了compile链接了 ,去掉重复的引用即可
12、Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> compileSdkVersion 'android-25' requires JDK 1.8 or later to compile.
原因:builTool 版本和 SDK Tool 版本不一致,compileSdkVersion 25需要JDK1.8,
解决方法:更新为最新版本
或修改 build.gradle 中以下配置,统一版本
compileSdkVersion 23
buildToolsVersion "23.0.3"
minSdkVersion 16
targetSdkVersion 23
compile 'com.android.support:appcompat-v7:23.2.0'
13、 cannot resolve corresponding JNI function
错误提示为:
Cannot resolve corresponding JNI function Java_com_keepassdroid_crypto native_AesCipherSPI_Update
Reports native method declaration in Java where no corresponding JNI function is found in the project.
解决办法:
1.File--->Settings--->Plugins,将Android NDK Support(如下图中第一项)后面的对勾去掉。
2.重新启动Android Studio并加载project。
14、Error:Could not get unknown property 'ANDROID_BUILD_SDK_VERSION' for project ':pagerSlidingTabStrip_lib' of type org.gradle.api.Project.
降低了下版本,as 2.2, gradle 2.10, android plugin version 2.1.2, small 1.0.0-beta9就没问题了,之前gradle用了2.14
15、Andoird Studio 错误: 非法字符: '\ufeff' 解决方案
从 Eclipse 中拷贝了一个类文件导入到AndroidStudio的时候提示,非法字符: '\ufeff' 解决方案,细细一想编译器没报错,但编译出错,应该是隐蔽字符BOM的问题,于是在资源管理
器定位到该文件,用Notepad++打开,果然原创作者没用采用(UTF-8 无BOM)模式。
我们只需要点击把它转为UTF-8无BOM格式编码即可。
PS:Eclipse可以智能的把有BOM文件转为无BOM文件,目前AndoridStudio木有这个功能,需手动完成。
16、This version of android studio is incompatible with the gradle version used.Try disabling the instant run
原因:AS和 Gradle 版本不一致造成
解决方法:
had easy steps & correct way also
1 - In Settings
-> Build, Execution, Deployment
option -> Instant Run
2 - Clear Enable instant run to hot swap code
3 - Clean project
17、
Error:Failed to complete Gradle execution. Cause: Unable to start the daemon process. This problem might be caused by incorrect configuration of the daemon. For example, an unrecognized jvm option is used. Please refer to the user guide chapter on the daemon at https://docs.gradle.org/3.3/userguide/gradle_daemon.html Please read the following process output to find out more: -----------------------
18、 android studio 编译错误 Error: Duplicate resources
原因在于drawable 目录下图片和xml文同名,修改掉就可以了
19、android studio 启动报nexpected exception during symbol building (rebuildModuleMaps)
android stuido 升级到2.3版本是的时候,启动总是提示
禁用android studio插件NDK 重启android studio 即可,如下
file>settings>plugins
处理Gradle中的文件下载慢的问题的?
修改项目根目录下的文件 build.gradle :
buildscript {
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
}
allprojects {
repositories {
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
}
然后选择重新构建项目就可以了
已验证
来自:https://www.zhihu.com/question/37810416
Error:(38, 0) Could not get unknown property 'compile' for object of type org.gradle.api.internal.ar
错误:Error:Could not get unknown property ‘compile’ for object of type org.gradle.api.internal.artifacts.
原因:加入的时候工程的 build.gradle 下的compile 混乱
解决办法:修改compile的结构