Android studio 升级4.2后ButterKnife无效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android studio 升级4.2后ButterKnife无效相关的知识,希望对你有一定的参考价值。

参考技术A

1、File-Settings-Plugins,搜插件butterknife安装图中工具

2、光标放到布局处,Alt+Insert(或者鼠标右键选中Generate),点击ButterKnife IInjections即可

注意:关闭再次打开studio如果出现报错 Plugin "Android ButterKnife Injections (Support Kotlin)" is incompatible (supported only in IntelliJ IDEA). 不兼容的情况,请将该插件的默认安装目录(我的是:C:\\Users\\89018166\\AppData\\Local\\Google\\AndroidStudio4.2\\plugins)下面的对应文件移至Android Studio的安装目(我的是:E:\\as1\\plugins)下。

找到AS安装的地方,并找到箭头指向的路径,复制到里面就可以了。

Android Studio 3.2.1 升级后的构建错误

【中文标题】Android Studio 3.2.1 升级后的构建错误【英文标题】:Build errors after Android Studio 3.2.1 upgrade 【发布时间】:2019-03-18 07:18:30 【问题描述】:

我正在从 Udacity 构建一个示例项目。到目前为止一切正常,但升级到 Android Studio 3.2.1 后,我遇到了以下构建错误。

Gradle 版本:4.6

项目链接:https://github.com/udacity/ud851-Sunshine/tree/student/S02.02-Solution-Menus

Could not find com.android.tools.build:aapt2:3.2.1-4818971**. Searched in the following locations:
    file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971.pom
    file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar
    file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/google/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971.pom
    file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/google/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar
    file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/android/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971.pom
    file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/android/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar
    https://jcenter.bintray.com/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971.pom
    https://jcenter.bintray.com/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar Required by:
    project :app

我该如何解决?

【问题讨论】:

欢迎来到 SO。请通过在您的问题中添加根 build.gradle 来添加有关您正在使用的 gradle 版本以及您在项目中拥有哪些存储库的更多详细信息?那太好了。 @Mohsen 我已经添加了 Udacity 项目的链接。 gradle 看起来很旧:classpath 'com.android.tools.build:gradle:2.2.3'。您是否尝试过classpath 'com.android.tools.build:gradle:3.2.1' 或更新依赖项?另外,请使用implementation 而不是compile 做到了。还是一样的错误。 找到了解决方案:***.com/a/50290877/7103964 将 google repo 添加到所有项目解决了我的问题。 【参考方案1】:

项目gradle 版本相当老了:

classpath 'com.android.tools.build:gradle:2.2.3'

而您使用的是 Android Studio v3.2.1,所以更新gradle

classpath 'com.android.tools.build:gradle:3.2.0' // or 3.2.1 maybe

另外,如您所见,它正在寻找一些包:

file:/C:/Users/sandeepk2/AppData/Local/Android/Sdk/extras/m2repository/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971.pom

这意味着您可能忘记将google() 添加为***存储库。只需添加google()

到您的根目录build.gradle 中的存储库。

【讨论】:

【参考方案2】:

解决这个问题

首先从下面的链接下载缺少的 Jar 文件。我看到你缺少版本 3.2.1-4818971

https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar

将您的文件夹结构从 Android 切换到 Project。

现在导航到应用程序内的 libs 文件夹 - build 文件夹。 (如果libs文件夹不存在,可以在app文件夹上右键-选择New-选择Directory来创建。)

将下载的.jar 文件粘贴到 libs 文件夹中。右键单击 jar 文件,然后在底部单击添加为库。这将负责在 build.gradle 中添加实现文件('libs/library_name.jar')[您不必在构建文件中手动输入]。

在完成上述操作后同步后一切都应该没问题。 这是此解决方案的源链接:https://developer.android.com/studio/command-line/aapt2#download_aapt2

如果您在执行上述操作时遇到任何其他问题,请告诉我。

【讨论】:

为什么谷歌不在他们的仓库中捆绑这个? Android dev exp 是我遇到过的最差的【参考方案3】:

是的,正如 d4rkcon 所说,下载 https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971-windows.jar 但是你可以做的更简单——只要把这个文件放在 Andoid Studio 试图找到它的目录中。如果您在 AndroidSDK 文件夹中没有 /tools/build/aapt2/3.2.1-4818971/ 之类的目录,只需创建它们,然后将 aapt2-3.2.1-4818971-windows.jar 文件放入。

【讨论】:

谢谢,这对我有用。我必须添加 3 级目录。 jar 文件也有 3 种风格。在 Mac 上是:dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/…(在 jar 文件中用 osx 或 linux 代替 windows)【参考方案4】:

适用于 Android Studio 3.2.1 更新

只需在根级别添加google() build.gradle

buildscript 
    repositories 
        google()   //  <--here
        jcenter()
    
 

allprojects 
    repositories 
        google()   //  <-- here
        jcenter()
    

看看魔法 - 错误消失了。

【讨论】:

我有 jcenter() 并在之后添加了 google() 以修复错误。 感谢您提及添加“google()”的确切位置 优秀的答案 好的,这确实解决了问题,但有人能解释一下原因吗? 请问,您到底是怎么知道的? IOW,我也可以在哪里学习这些东西?【参考方案5】:

如下更改你的 build.gradle。

android 
    compileSdkVersion 26
    buildToolsVersion "28.0.3"

    defaultConfig 
        applicationId "your package name here"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
    
    buildTypes 
        release 
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        
    


dependencies 
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    testImplementation 'junit:junit:4.12'
    implementation 'com.android.support:appcompat-v7:26.1.0'

【讨论】:

【参考方案6】:

在您的 build.gradle(Project:xxxxx) 中添加 Google 存储库

allprojects 
    repositories 
        google()
    

【讨论】:

【参考方案7】:

在您的构建脚本中添加 google() > 存储库 在 allprojects > repositories 上添加 google

使用实现作为编译关键字的替换, 也在你的文件树上。

EX.

dependencies 
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', 
        exclude group: 'com.android.support', module: 'support-annotations'
    )

    implementation 'com.android.support:appcompat-v7:25.3.1'
    implementation 'com.android.support:design:25.3.1'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.android.support:support-v4:25.3.1'

【讨论】:

【参考方案8】:

清除gradle缓存

rm -rf $HOME/.gradle/caches/

并重新同步以下载所有依赖项

【讨论】:

是的,这就是解决方案,升级 gradle 后,必须重新同步所有依赖项才能成功运行此命令:react-native run-android【参考方案9】:

对于 Android Studio 3.6.3 更新:只需在 buildscript 中添加 google maven 标签,在项目文件的 build.gradle 文件中添加所有项目存储库即可解决问题。

buildscript 
    repositories 
        jcenter()
        maven 
            url 'https://maven.google.com/'
            name 'Google'
        
    
    dependencies 
        classpath 'com.android.tools.build:gradle:3.6.3'

    


allprojects 
    repositories 
        jcenter()
        maven 
            url 'https://maven.google.com/'
            name 'Google'
        
    


task clean(type: Delete) 
    delete rootProject.buildDir

【讨论】:

您介意用其他信息更新您的答案吗?此配置与其他以前的答案有什么不同?之前的方法在 Android Studio 3.6.3 中不起作用吗?您的配置的哪些特定部分是解决方案的关键?主要是maven 配置吗? 是的,其他答案不能解决最新的android studio更新问题。

以上是关于Android studio 升级4.2后ButterKnife无效的主要内容,如果未能解决你的问题,请参考以下文章

删除 jcenter() 后如何解决 Android Studio 4.2 构建错误?

Android Studio 4.2 现已发布!

将 android studio 更新到 4.2 Beta1 后,Gradle 构建失败

更新到 Android Studio 4.2 后无法创建新的 Kotlin 项目

更新到 Android Studio 4.2 后,查找和替换都不起作用

android studio 4.2 无法安装android sdk