1、
Warning: there were 3 instances of library classes depending on program classes.
You must avoid such dependencies, since the program classes will
be processed, while the library classes will remain unchanged.
(http://proguard.sourceforge.net/manual/troubleshooting.html#dependency)
Warning: Exception while processing task java.io.IOException: Please correct the above warnings first.
Thread(Tasks limiter_1): destruction
:app:transformClassesAndResourcesWithProguardForWithIconRelease FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:transformClassesAndResourcesWithProguardForWithIconRelease'.
> Job failed, see logs for details
解决办法:修改module目录下的proguard-rules.pro文件,添加忽略警告
-ignorewarnings
2、AS内存占用设置
找到as安装目录(右键点击as图标,点击“属性”,目标路径就是as安装目录,在bin目录下有studio64.exe.vmoptions和studio.exe.vmoptions文件,32位系统修改studio.exe.vmoptions,64位系统修改studio64.exe.vmoptions)
-Xms256m
-Xmx1280m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
其中-Xms 是JVM启动的起始堆内存,堆内存是分配给对象的内存。一般默认设置是128m,建议改成512m
其中-Xmx 是 Java 虚拟机启动时的参数,用于限制最大堆内存。所以这里也需要更改。这里的更改根据电脑的实际情况进行分配。笔者这里设置了3072m。
其中-XX:MaxPermSize 是指定最大的Permanent generation大小。Permanent generation space,实际上就是方法区,存储了Class的信息以及一些其他信息。有时开发时出现的错误如Permgen Space方面的,就是指这个内存溢出了。所以一般这个可以不改,也可以加大一点。
3、
将inputStream 作为参数两次调用BitmapFactory.decodeStream ,第一次调用ok,第二次调用失效
原因是第一次调用BitmapFactory.decodeStream完inputStream 的游标已达到末尾,此时inputStream.available()为0。为解决这个问题,可以在第一次调用BitmapFactory.decodeStream前设置游标inputStream.mark(inputStream.available()),在第一次调用BitmapFactory.decodeStream后将游标返回到之前标记的地方inputStream.reset();,然后第二次调用BitmapFactory.decodeStream就没问题啦
4、
com.android.ide.common.signing.KeytoolException: Failed to read key androiddebugkey from store "xxx.keystore": Keystore was tampered with, or password was incorrect
编译时提示Keystore密码不对,原来是下面箭头的密码输错了(锁定大写键,小写变大写啦)
5、
java.lang.NoSuchMethodError: No interface method registerProcessObserver(Landroid/app/a;)V in class Landroid/app/IActivityManager; or its super classes (declaration of 'android.app.IActivityManager' appears in /system/framework/framework.jar)
使用系统编译出的jar,运行时报找不到方法,在proguard-rules.pro中设置android/app/IActivityManager不混淆即可
-keep class android.app.**{*;}
6、使用eventbus,开启混淆后报
Subscriber class and its super classes have no public methods with the @Subscribe annotation
在proguard-rules.pro中设置设置
-keepattributes *Annotation*
-keepclassmembers class ** {
@org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
7、android studio更新tools失败,在C:\Windows\System32\drivers\etc目录修改host文件加上
203.208.40.142 www.google.com
74.125.113.121 developer.android.com
203.208.40.142 dl.google.com
203.208.40.142 dl-ssl.google.com
8、之前设置过bugly的proxySetting,但是在后面设置中No Proxy,还是使用的是原来的bugly代理
error "Unknown host 'bugly.com' You may need to adjust the proxy settings in Gradle" in android studio 3.2.
解决办法C:\Users\Administrator\.gradle中删除gradle.properties文件的之前设置的缓存代理
9、as添加svn管理(如下图)
10、Android Studio编译工程出现:Cause: unable to find valid certification path to requested target
解决办法:将工程目录的gradle文件里面的两个jcenter()改为
jcenter{
url 'http://jcenter.bintray.com'
}
11、AndroidStudio 3.5.x更新maven2相关插件长时间卡住不动问题
解决办法:工程gradle文件添加箭头所指网址一行网址
maven { url 'http://repo1.maven.org/maven2' }