Android Studio 项目异常问题汇总

问题一

异常描述:Caused by: java.lang.RuntimeException: com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: java.io.IOException: Failed to find byte code for android/app/job/JobServiceEngine

解决方案:将Instant Run关闭。Settings-Build,Execution,Deployment-Instant Run 关闭。


 

问题二:

异常描述:Could not get unknown property 'apkVariantData' for object of type com.android.build.gradle.internal.api.ApplicationVariantImpl.
解决方案:此问题是升级Gradle 3.x.x后出现,个人认为通常是项目中集成的三方插件或平台当前版本不支持Android Gradle 3.x.x所致,只需升级相关联的三方插件或平台版本即可。比如我是因为腾讯热修复平台Tinker,将其升级至最新版本后,解决!!!

问题三:

异常描述:Manifest merger failed with multiple errors, see logs

通常遇到这种问题,没有更多的提示信息。

解决方案:

在命令行Termimal 输入命令:gradlew processDebugManifest --stacktrace

这个命令会打印更多的log信息。

问题四:

异常描述: java.io.IOException: Cleartext HTTP traffic to 203.119.205.154 not permitted

解决方案:

这是由于Android P/9.0 开始必须使用加密的App 网络请求来处理数据。无论提交或者获取数据都不能用明码传输。

方案1.targetSdkVersion 设置 < 27

方案2.将Http请求改为Https

方案3.更改全局网络安全配置

在src/res/xml目录下创建xml文件:network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <!--兼容  Android 系统(Android P)  必须使用加密网络请求-->
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

然后在AndroidManifes.xml application标签添加属性 networkSecurityConfig

 <application
        android:name=".MyApp"
        android:allowBackup="true"
        android:hardwareAccelerated="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:networkSecurityConfig="@xml/network_security_config"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="false"
        android:theme="@style/AppTheme.NoActionBar"
        tools:replace="android:icon,android:theme,android:allowBackup">
....

问题五:

问题描述:AAPT2 error: check logs for details

通常是资源找不到导致的问题,但是我们在这个视图下并不能找到其他提示信息。

解决方案:切换Build视图 Restart 至 Toggle view,可以看到详细的日志信息。通常可以直接打印出具体资源文件找不到的位置。

问题六

问题描述:Could not download butterknife-compiler.jar  XXX : No cached version available for offline mode

通常是项目中的下载项需要访问google下载,但是国内必须翻墙。设置取消勾选Offline work 也不起作用。

解决办法:

将下面两行代码添加至 project.gradle 的 buildscript respositories 和 allprojects respositiries

        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
        maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }

问题六

问题描述:Android Studio 可以执行Debug,但局部变量值不能Watch

解决方案:

设置 :testCoverageEnabled false

        release {
            minifyEnabled false //删除没有用到的文件
            matchingFallbacks = ['debug', 'dev', 'beta', 'prd']
            debuggable true
            testCoverageEnabled false
            signingConfig signingConfigs.key
        }

注:如果运行发现仍然不能Watch,可以尝试Invalidate Caches/Restart 。重新启动后再试!

问题七

问题描述:

SourceTree 操作出现错误,错误信息:
git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks fetch origin
remote: HTTP Basic: Access denied
fatal: Authentication failed for 'http://git.xxx.com/mft100/yyy.git/'

可能会有很多原因,这里记录我遇到的一种,检查“验证账户”

工具-选项-验证

问题八:Enter passphrase for key '/Users/xxx/.ssh/id_rsa

What

在自己Mac上配置了SSH公私钥,出现了如下问题,每次都要输入密码,于是就查了一下解决办法。
git每次操作远程分支(git pull,git push等)时提示enter passphrase for key '~/.ssh/id_rsa'

Why

原因应该是生成key的时候设置了密码,导致每次操作git都需要输入密码。然而很多小伙伴第一次生成key的时候都处于懵懵懂懂的状态(比如我),面对陌生的命令,莫名其妙就设置了密码,然后每次使用时都需要输入密码这个繁杂的操作。我这次发现自己输入的密码都不是GitLab的密码。

How

解决办法很简单,就是输入以下命令:

ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]

如:

ssh-keygen -p -P 123456 -N '' -f ~/.ssh/id_rsa

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值