Android Studio常见问题

来源:互联网 发布:淘宝联盟能挣钱吗 编辑:程序博客网 时间:2024/06/06 16:45

Android stuido是Google官方唯一推荐的Android开发IDE,但是在使用过程中,必然会遇到一些一问题,Android Studio毕竟还在完善中,在这,分享一下我在使用Android Studio的时候遇到的问题以及解决方案,希望对广大博友有所帮助。
1、

Error:A problem was found with the configuration of task ':app:packageDebug'.> File 'E:\winjia\Android\AndroidHelperJump\app\build\intermediates\res\resources-debug-stripped.ap_' specified for property 'resourceFile' does not exist.

这个问题在国内博客里有解决方案,也是有效的解决方案:感谢欧阳鹏分享的解决方案

2、

Warning:Exception while processing task java.io.IOException: proguard.ParseException: Expecting java type before ';' in line 58 of file 'E:\winjia\Android\AndroidHelperJump\app\proguard-rules.pro'

解决方案:这个异常提示很明显,是混淆文件的问题,在proguard-rules.pro的58行,找到代码你会发现,在这行代码的最后只有一个分号,在分号前面添加一个“*”就OK了。
3、

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':transformClassesAndResourcesWithProguardForRelease'.

这个问题纠结了我两天,现在算是没这个问题了,暂时将它定位为混淆出的问题(在不混淆的情况下,不会有这个问题),但是奇怪的是,当我把新加的代码注释之后,问题就不再出现了,下面是我新加的混淆代码:

-keep class * {    public private *;}-keep class android.support.v4.app. { *; }-keep class android.support.v7.app. { *; }-keep class android.support.v13.app. { *; }-keep interface android.support.v4.app. { *; }-keep interface android.support.v7.app. { *; }-keep interface android.support.v13.app. { *; }-dontwarn android.support.v4.*-dontwarn android.support.v7.*-dontwarn android.support.v13.*

这是在国外网站找的解决方案:transformClassesAndResourcesWithProguardForRelease解决方案参考

4、

Error:Execution failed for task ':app:transformClassesWithDexForDebug'.> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

这个问题是在项目中出现了多个相同的包导致的,解决方案:在app目录下的build.gradle的defaultConfig中添加:

multiDexEnabled true

并且在dependencies里面添加:

compile 'com.android.support:multidex:1.0.1'

最后重写Application中的方法attachBaseContext,添加以下代码:

public class YouApplication extends Application {    @Override    protected void attachBaseContext(Context base) {        super.attachBaseContext(base);        MultiDex.install(this);    }}

参考解决方案:多包冲突解决方案

5、

Information:Gradle tasks [:app:assembleBptRelease]Warning:library class android.webkit.WebView depends on program class android.net.http.SslCertificateWarning:library class android.webkit.WebViewClient depends on program class android.net.http.SslErrorWarning:there were 3 instances of library classes depending on program classes.Warning:Exception while processing task java.io.IOException: Can't write [E:\winjia\Android\AndroidHelperJump\app\build\intermediates\transforms\proguard\bpt\release\jars\3\1f\main.jar] (Can't read [C:\Users\dht10\.android\build-cache\a17c8869ac8fed255c1c2a4dbe599fdcb2263317\output\jars\classes.jar(;;;;;;**.class)] (Duplicate zip entry [classes.jar:com/tencent/bugly/a.class]))Error:Execution failed for task ':app:transformClassesAndResourcesWithProguardForBptRelease'.> Job failed, see logs for details

这是我在集成bugly的时候出现的一个问题,在debug环境下是没有问题的,但是,一旦切换到release环境立马就报出了这个问题,什么原因呢?Duplicate zip entry [classes.jar:com/tencent/bugly/a.class],看到这句话了没,意思就是说a.class重复了,那么,我们只需要把这个jar包的引用去掉就OK了。

6、最近碰到一个很低级的问题,在做屏幕适配的时候,写了多个xml布局,但是就在写完这几个布局文件的时候,意外的事情发生了:

11-16 13:07:38.560: ERROR/AndroidRuntime(13277): java.lang.IllegalStateException: Circular dependencies cannot exist in RelativeLayout11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.RelativeLayout$DependencyGraph.getSortedViews(RelativeLayout.java:1286)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.RelativeLayout.sortChildren(RelativeLayout.java:292)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:314)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.View.measure(View.java:12733)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1370)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1018)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:556)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.View.measure(View.java:12733)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.HorizontalScrollView.measureChildWithMargins(HorizontalScrollView.java:1159)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.HorizontalScrollView.onMeasure(HorizontalScrollView.java:303)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.View.measure(View.java:12733)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.View.measure(View.java:12733)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.View.measure(View.java:12733)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1370)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:661)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:554)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.View.measure(View.java:12733)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2115)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.View.measure(View.java:12733)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1069)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2447)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.os.Handler.dispatchMessage(Handler.java:99)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.os.Looper.loop(Looper.java:137)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at android.app.ActivityThread.main(ActivityThread.java:4439)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at java.lang.reflect.Method.invokeNative(Native Method)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at java.lang.reflect.Method.invoke(Method.java:511)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)11-16 13:07:38.560: ERROR/AndroidRuntime(13277):     at dalvik.system.NativeStart.main(Native Method)11-16 13:07:38.570: WARN/ActivityManager(302):   Force finishing activity com.XX.XX/.TaskPersonActivity11-16 13:07:38.600: VERBOSE/AudioHardwareMSM8660(135): ACDB ID Device ID=speaker_stereo_rx

这个问题在网上也有一些解决方案,但是仍没解决我的问题,嗯,是没有解决我的问题!!!!!那就只能每个文件去对比咯,是滴,就是这么做滴。对比之后发现:在我的ImageView依赖了EditView,属性为above,而我的EditView又依赖了ImageView,属性为below,所以出现了问题。
对比之后发现在同一个页面的不同布局中存在着相同控件的不同的排版方式,应该就是这个问题吧。重新排版一下布局,发现文件解决了,还有一些其他可能导致这个问题的因素:
RelativeLayout依赖规则错误

7、昨晚又出bug了,哎……..
先看看什么情况吧!!!!!

 java.lang.IllegalStateException: startRecording() called on an uninitialized AudioRecord. 或者 java.lang.IllegalStateException: stop() called on an uninitialized AudioRecord.

部分手机在使用AudioRecord进行录音的时候会抛出这个异常,不管是在调用系统api startRecording()还是stop(),一开始很疑惑,这是为什么呢?在网上查阅一些资料,从一些大神们的博客里面大概摸出了点端倪,至于为什么,目前还不是很清楚,如果有小伙伴了解,欢迎相互交流一下,在这里提供一些解决方案:java.lang.IllegalStateException: startRecording() called on an uninitialized AudioRecord,仅供参考。

8、最近导入一项github上下载的项目,结果出现了以下问题:

Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE    File1: C:\Users\dht10\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations\2.7.0\19f42c154ffc689f40a77613bc32caeb17d744e3\jackson-annotations-2.7.0.jar    File2: C:\Users\dht10\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.7.2\8b8310381b690e317f5f0574e9b2dd7034778b4c\jackson-core-2.7.2.jar    File3: C:\Users\dht10\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-databind\2.7.2\84ffa765dd258dbab8695963c41308b054f3a1cb\jackson-databind-2.7.2.jar

在网上找了一下,说是jar包里有相同的文件导致的,在module的build.gradle中添加一下配置就OK:

packagingOptions {        exclude 'META-INF/LICENSE'        exclude 'META-INF/NOTICE'    }

感谢欧阳鹏的解决方案

9、最近Android Studio发不了3.0版本,升级之后在构建项目的时候出现一个问题:

Error:android-apt plugin is incompatible with the Android Gradle plugin.  Please use 'annotationProcessor' configuration instead.

错误报告android-apt插件与Android Gradle插件不兼容,讲apt用‘annotationProcessor’替换。
注意:在替换apt插件时,还需要讲gradle配置中的apt插件的引用注释掉。

0 0
原创粉丝点击