android开发问题

2022-07-17 13:46:27

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不混淆即可

-keepclass 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' }

  • 作者:爱炒饭
  • 原文链接:https://blog.csdn.net/u013795543/article/details/80765500
    更新时间:2022-07-17 13:46:27