最近将自己以前记录的AndroidStudio 使用过程中遇到的问题整理了下,里面是我开发中遇到的问题和收集的已经验证过的方法,记录下来,方便以后查找,欢迎补充

1、AS导第三方项目一直在Building的解决方法

有时候当我们导入开源项目的时候 会卡顿甚至死机 这是因为我们本地已有的配置和开源项目的不一样 这时候Android studio就会去下载 而且下载是要翻墙的 所以会出现这种情况 那么我们怎么避免下载没用的资源呢 请看:

第一步:


android studio一直转圈 android studio下面一直转圈_android studio一直转圈




打开 开源项目的这个文件(如图所示) 


android studio一直转圈 android studio下面一直转圈_android studio一直转圈_02



把红线画的这个 改成你 新建的项目或者已有的项目 对应的gradle-wapper.properties文件里一样的! 



第二步:


android studio一直转圈 android studio下面一直转圈_android studio一直转圈_03




把开源项目 根目录下的build.gradle里面的这个buildtools改成和你自己工程的一样!




第三步:

完成上面2个步骤,理论上可以open开源项目了,但是应该会报错。还有些东西要改!可以open以后在android studio里面改 ,也可以在open之前在文件目录里面改 



android studio一直转圈 android studio下面一直转圈_android_04




把module、app目录对应build.gradle里面的buildToolsVersion 改成和你自己工程的一样!SdkVersion建议也改成一样的! 


android studio一直转圈 android studio下面一直转圈_android studio一直转圈_05


然后 把这几个依赖 如果有的话 改成一样的或者本地有的!(本地没有它就会去下载)




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]]

原因:

解决方法:去掉红色箭头指向的勾


android studio一直转圈 android studio下面一直转圈_android studio一直转圈_06


android studio一直转圈 android studio下面一直转圈_java_07



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



解决方案一:

android studio一直转圈 android studio下面一直转圈_android_08



修改项目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”



android studio一直转圈 android studio下面一直转圈_android_09





 可以解决



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]]

原因:

解决方法:去掉红色箭头指向的勾

android studio一直转圈 android studio下面一直转圈_Java_10




android studio一直转圈 android studio下面一直转圈_Java_11


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


android studio一直转圈 android studio下面一直转圈_android_12


重复引入了第三方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(如下图中第一项)后面的对勾去掉。


android studio一直转圈 android studio下面一直转圈_java_13



2.重新启动Android Studio并加载project。


android studio一直转圈 android studio下面一直转圈_Java_14


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格式编码即可。


android studio一直转圈 android studio下面一直转圈_Java_15


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 Run2 - 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: -----------------------


android studio一直转圈 android studio下面一直转圈_android_16




18、 android studio 编译错误 Error: Duplicate resources


原因在于drawable 目录下图片和xml文同名,修改掉就可以了



19、android studio 启动报nexpected exception during symbol building (rebuildModuleMaps)


android stuido 升级到2.3版本是的时候,启动总是提示


android studio一直转圈 android studio下面一直转圈_java_17



禁用android studio插件NDK 重启android studio 即可,如下 
file>settings>plugins


android studio一直转圈 android studio下面一直转圈_android studio一直转圈_18



处理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的结构


android studio一直转圈 android studio下面一直转圈_Java_19