当前位置: 首页 > 知识库问答 >
问题:

Butternife 8.1.0不能在Android Studio 2.1.2中使用JDK 1.8

归鹤龄
2023-03-14

我对Android、Android Studio、Butternife和Gradle构建系统相当陌生。然而,我对Java或一般编程并不陌生。

我试图用JDK 1.8和Butternife 8.1.0版本构建一个Android应用程序,但Gradle构建一直失败,比如:

错误:在任务“:app:CompiledEbugJavaWithJack”上找不到属性“Options”。

    null

它到底管用吗?如果是,我需要做什么来让它工作?

下面是我的项目设置的细节,以及Gradle构建文件的片段。我很乐意提供任何可能需要的额外细节/文件。

版本详细信息:

    null
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
//        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        classpath 'com.android.tools.build:gradle:2.1.2'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
apply plugin: 'com.android.application'
apply plugin: 'android-apt'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.0"

    defaultConfig {
        applicationId "sounakray.popularmovies"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        jackOptions {
            enabled true
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

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

repositories {
    mavenCentral()
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.0.0'
    compile 'com.android.support:design:24.0.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.android.volley:volley:1.0.0'
    compile 'com.google.code.gson:gson:2.7'
    compile 'com.jakewharton:butterknife:8.1.0'
    apt 'com.jakewharton:butterknife-compiler:8.1.0'
}
dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0-alpha5'
}

build.gradle(模块级)

apply plugin: 'com.android.application'
//apply plugin: 'android-apt'
...

dependencies {
    ...
    compile 'com.jakewharton:butterknife:8.1.0'
    annotationProcessor  'com.jakewharton:butterknife-compiler:8.1.0'
}

共有1个答案

宋望
2023-03-14

如果您正在使用Jack:

  • 完全省略'Android-apt'插件。
  • 对依赖项使用annotationprocessor(而不是apt)。

我相信你必须使用2.2.0版本的Android Gradle插件,而不是2.1.x(目前最新的是2.2.0-alpha5)。

 类似资料:
  • 问题内容: 我使用Flask-Login 在模板中提供对象。我想编写一个宏来显示评论表单或登录链接,具体取决于用户是否登录。如果我直接在模板中使用此代码,它将起作用: 我将相同的代码放在宏中,然后将宏导入模板中。 当我尝试加载此页面时,出现的错误是: 当然,简单的解决方法是current_user作为参数传递并使用该参数(进行签名comment_form(user, form)),尽管这是一个非常

  • 我有一个非常简单的类,它是一个Restful web服务。我想在web服务中使用EJB。我使用@EJB注释来注入我的EJB。唯一的问题是,EJB总是空的。然后我使我的web服务本身成为一个无状态EJB。这修复了空问题。但是,当我试图调用EJB上的任何函数时,我得到以下错误: 编辑:这里是CasperLoggingDao的代码

  • 我试图测试一个@Controller类,其中有来自POJO的列表。我可以在另一个@RESTController类中使用@Autowired来连接控制器,但在同样的情况下,我不能将其用于测试。 user.java UserContrell3.java 在下一个类中,userresource.java我可以做@autowired 但是,在测试类UserTest.java中。我不能: 提前感谢!

  • 问题内容: 错误是 1064-您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在“ desc,发布,视图,精选”附近使用VALUES(“,”标题”,“ \ r \ n描述\ r \ n”,“ 1个 表结构是 在phpmyadmin sql编辑器中运行 问题答案: desc是mysql的保留字。您必须在保留字的列中使用反引号’‘。 您应避免将保留字用作列名或必须使用

  • imagemagick转换命令有问题。该命令与标准结构的normal.svg配合使用非常理想。 但是如果您使用 区域和 引用,它就不起作用了。 magick convert test.svg-调整50%test.png的大小 > 适用于SVG1 在带有xlink:href的SVG2上不起作用 <?xml version=“1.0”encoding=“UTF-8”?> <!doctype svg P

  • 我试图修改Vaadin发送到浏览器的引导Javascript。以下是有关此问题的瓦丁论坛链接:https://vaadin.com/forum#!/Thread/4252604 Vaadin使用Jsoup,因此我使用JSoupAPI在Vaadin负载中找到正确的位置来修改Javascript。当我像这样使用Jsoup API时: newHTML中的任何内容都会被转义。例如,如果newHTML是:

  • 问题内容: 查询代码和查询: 返回一个空值。 通过基本调试,我发现了它的第三个绑定,即问题 我尝试了各种变体,其中最明智的似乎是在使用: 但这不起作用,因为我错过了连接字符串的任一侧,所以我尝试: 但我似乎无法找到一种方法使它们起作用。 我想念什么? 问题答案: 首先,占位符(那些占位符)仅用于 列值 ,而不用于表名,列名,SQL函数/子句等。最好改用。其次,你应该 不 引用占位符一样,它只会ma