avatar

目录
AndroidStudio问题归纳

前言

整理归纳使用AndroidStudio过程中遇到的问题,并记录解决办法。

佛祖保佑永无BUG

正文

Error:Could not download protobuf-java.jar (com.google.protobuf:protobuf-java:3.0.0)

老项目导入到最新版本的 AndroidStudio 时,发现无法同步,找不到 protobuf-java.jar 这个包,因为新版本有所改动

解决方案:
我之前只有 jcenter(),需要修改配置
修改一下整个项目的配置 build.gradle

gradle
jcenter() {
url "http://jcenter.bintray.com/"
}

报错 error: No resource identifier found for attribute ‘cardCornerRadius’ in package ‘com.xxxxx.xxx’解决

在依赖我自己的 RxTool下的 RxUI库时,出现上面这个错误,我反复检查了res目录里的文件,最后确定没有缺少资源,查看报错信息如下:

发现有cardBackgroundColor,cardCornerRadius,cardElevation三个属性应该与cardview有关,然后我发现在app下的build.gradle文件中没有导入卡片布局cardview相应的依赖包。然后我导入相应的依赖包

gradle
implementation 'com.android.support:cardview-v7:27.1.1'

重新clean project后报错消失了,一阵狂欢,终于解决了,哈哈。

AAPT: error: inner element must either be a resource reference or empty。

Logcat 错误日志

Code
AAPT: error:  inner element must either be a resource reference or empty。

问题出现原因:升级gradle插件导致对values文件的命名规则更严格,导致原本项目中存在的values文件因包含一些不严谨的键值对而报错。
例如:

Code
false

解决方法
修改成:

Code

Android Studio编译问题-Error:Could not find org.jetbrains.trove4j:trove4j:20160824

今天早上打开AS,发现项目编译不通过了。。。提示

bash
Error:Could not find org.jetbrains.trove4j:trove4j:20160824

Error:SSL peer shut down incorrectly

真莫名其妙。。。

查阅资料,提供的解决方式大致有以下几种:

  1. 在buildscript中加上这个 jcenter()

    gradle
    buildscript {
    repositories {
    jcenter()// 在这里加
    }
    dependencies {
    classpath 'com.android.tools.build:gradle:3.0.1'
    }
    }

    但是,一般项目都有这个属性了,仍然是报上面的错。

  2. 修改gradle-wrapper.properties文件
    将distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
    修改为:distributionUrl=http://services.gradle.org/distributions/gradle-4.1-all.zip
    有的同志,说这样调整之后,重新编译就通过了。但我的仍然是编译不过。

  3. 项目build文件中repositories和allprojects括号中加上mavenCentral()
    然后将 jcenter() 改成

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

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

    最后是这个样子:

gradle
buildscript {
repositories {
mavenCentral()
google()
//jcenter()
maven{ url'http://maven.aliyun.com/nexus/content/groups/public/' }
maven{ url'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
}
}

这样就编译通过了。

总结:个人认为,在AS加载(引入)各种包、库的时候,由于网络限制等原因,导致加载失败,这个时候,找个靠谱的第三方库来作为下载来源,才是最有效的。

Android Studio 使用ButterKnife生成变量加前缀m

以前 把 局部变量 改成成员变量的时候可以, 但是现在使用ButterKnife并没有在生成变量的时候自动加前缀m

局部变量

File -> Other Settings -> ButterKnifeZelezny 设置:

ButterKnifeZelezny


Unable to load class ‘org.gradle.api.internal.component.Usage’

今天从GitHub上下载一个项目导入Android studio3.0后报错,报错如下,详见截图:

bash
Error:(26, 0) Unable to load class 'org.gradle.api.internal.component.Usage'.
Possible causes for this unexpected error include:In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.

这个bug产生的原因就是和Android studio3.0有关,因为在Android studio2.3的时候还没有这种情况。

解决办法:

把project的build.gradle里的classpath ‘com.novoda:bintray-release:0.3.4’改为0.5.0版本的就好了。如下图所示:


java.lang.BootstrapMethodError: Exception from call site #3 bootstrap method

在引用ButterKnife库时,提示错误:

bash
java.lang.BootstrapMethodError: Exception from call site #3 bootstrap method

butterknife_issues找到了解决办法

解决方式:在build.gradle中添加以下代码Java8的新特性

gradle
compileOptions{
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}

to be continued…

文章作者: Tamsiree
文章链接: https://tamsiree.com/Software/AndroidStudio/AndroidStudio%E9%97%AE%E9%A2%98%E5%BD%92%E7%BA%B3/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Tamsiree
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论