Android Studio 常见问题分析解决

    xiaoxiao2023-11-04  139

    问题<一>:

    点击IDE(Android Studio版本>=3.0)中run在测试机上跑出来的包,提示如下“该软件包似乎已损坏”异常:

     

    原因分析:

    在Android Studio3.0及以上版本,默认会在AndroidManifest.xml文件的application中自动添加android:testOnly="true"属性,所以我们直接点击“run”运行的时候会报错如下:Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]

    Google为啥这么做,有兴趣的可以查看这篇文章:

    https://commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html

     

    解决方案:

    方案1、在gradle.properties文件中添加如下一行属性即可:

    android.injected.testOnly=false

    方案2、如果不修改Google默认的testOnly属性,是不是就没办法了呢,不是的办法还是有很多的,比如我们可以直接点击Gradle的InstanllDebug来直接安装:

    方案3、使用adb 指令来安装:

    adb uninstall xxx.apk //这里是apk安装包的绝对路径 adb install xxx.apk 或者 adb install -r xxx.apk//覆盖安装 或者 adb install -t xxx.apk//testOnly版本安装

     

     

    问题<二>:

    在多人协作项目中,你总是发现自己在一个原有的类中只修改了一行代码,并没有导入新的包,为啥import导入的包会有位置变动呢(因为我们关注的是:在修改一个原有类的时候我们保持最小的修改量,这样可以保持代码的清晰度,能让同事清晰的了解到你在某个时刻只是修改了哪一行代码,不必要修改的地方维持现状),如下图所示:

     

    原因分析:

    这是因为在IDE中自动开启了Optimize Imports(优化导入)选项。所以IDE会帮你自动优化你导入的包类型(比如会把java相关的包都导入至最上面等)。

     

    解决方案:

    (Mac) Android Studio --->Preferences --->Editor ---> General --->Auto Import 将如下红框中的对勾取消即可:

    当然,新创建的项目,或者我们个人的项目可以建议约定好都将此"优化导入"选项打开。

     

     

    问题<三>:

    Can't connect to SOCKS proxy:Connection refused (Connection refused)

     

    解决方案:

    1、删除掉gradle.properties中的代理。

    2、Preferences-->HTTP Proxy-->No proxy。

    3、删除掉/Users/用户名/.gradle下的gradle.properties中的代理。

     

     

    问题<四>:

    Unfortunately you can't have non-Gradle Java modules and Android-Gradle modules in one project.

     

    解决方案:

    1- close the project

    2- close Android Studio IDE

    3- delete the .idea directory

    4- delete all .iml files

    5- open Android Studio IDE and import the project

     

     

    最新回复(0)