黄油刀不会注射

2024-01-31

我正在尝试使用牛油刀 http://jakewharton.github.io/butterknife/这些天我在 Android Studio 工作,但它因一些奇怪的问题而让我失望。我曾经在 eclipse 上尝试过 Butter Knife,效果很好。不知道是不是我在Android Studio配置有问题。

我按照杰克·沃顿的指示进行操作website http://jakewharton.github.io/butterknife/,但它仍然不起作用。一开始是可以编译安装的,但是之后Butterknife.inject(this),视图仍然为空,并且抛出空指针错误。然后我在 Android Studio 上搜索了如何配置 Butterknife,然后按照这个问题 https://stackoverflow.com/questions/21030078/android-studio-0-4-butter-knife在stackoverflow上,它无法通过编译。

然后我恢复到我的第一个版本的配置,它也开始编译失败。这是消息:

Error:(14, 12): @InjectView-annotated class incorrectly in Android framework package. (android.rocky.butterknife_test.MyActivity)

and

Error:Execution failed for task ':app:compileDebugJava'. Compilation failed; see the compiler error output for details.


这是我的配置app/build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 20
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "android.rocky.butterknife_test"
        minSdkVersion 19
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            runProguard false
        }
    }
    lintOptions {
        disable 'InvalidPackage'
    }
    packagingOptions {
        exclude 'META-INF/services/javax.annotation.processing.Processor'
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.jakewharton:butterknife:5.1.2'
}

这是我的配置build.gradle在根:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.+'

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

allprojects {
    repositories {
        mavenCentral()
    }
}

这是我的Java代码:

public class MyActivity extends Activity {
  @InjectView(R.id.greeting)
  TextView greetingTextView;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
    ButterKnife.inject(this);
    greetingTextView.setText("butter knife!");
  }


  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.my, menu);
    return true;
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
      return true;
    }
    return super.onOptionsItemSelected(item);
  }
}

顺便说一句,我的android studio版本是0.8.2。如果您认为我粘贴的片段都很好,请告诉我粘贴其他片段。多谢!


例外说明了一切:

Android 框架包中@InjectView 注释的类不正确。 (android.rocky.butterknife_test.MyActivity)

你的类在Android框架包中,android.*。应用程序不应使用android.* or java.*他们的代码的包。 ButterKnife 将急切地拒绝这些包裹。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

黄油刀不会注射 的相关文章

随机推荐

  • Web API 可空必需属性需要 DataMember 属性

    我在 Web API Post 操作上收到以下虚拟机 public class ViewModel public string Name get set Required public int Street get set 当我发帖时 出现
  • 在 Rails 3 中执行任务时显示加载屏幕

    如果我的 创建 操作需要一段时间才能加载 由于执行 API 调用然后进行计算 向用户显示 加载屏幕 的最佳方式是什么而这个任务是在后台执行的 编写一些 AJAX 魔法 在激活时显示加载图像 并在 AJAX 调用完成时隐藏它 如果你不想使用
  • axios有能力检测重定向吗?

    The Fetch API响应接口 https developer mozilla org en US docs Web API Response has a 只读标志 https developer mozilla org en US d
  • 同时录制和播放音频

    任何人都可以帮助我在 iPhone 上同时录制和播放音频 您可以使用 AVFoundation 框架 它有AVAudioPlayer来播放音频文件和AVAudioRecorder来录制 您必须记住 录音机只能使用麦克风进行录音 因此 同时播
  • Python中正态分布的曲线拟合

    我想计算正态分布数据的百分位数 所以我首先将数据拟合到正态分布 下面是示例 from scipy stats import norm import numpy as np from scipy optimize import curve f
  • Django:无法从另一个应用程序导入模型

    我希望就我遇到的这个问题寻求一些帮助 我仍在学习 Django 和 Python 并遇到了这个我无法找到答案的特定问题 我创建了一个名为 新闻 的新应用程序 并为该应用程序设置了模型 使用管理界面我创建了一些数据 从我的 Pages 应用程
  • Go viper .yaml 值环境变量覆盖

    我正在努力拥有application yamlgo 应用程序中的文件包含 RMQ HOST 我想用环境变量覆盖的值 In application yaml我有 rmq test host RMQ HOST port RMQ PORT 在我的
  • 更改用户登录名后认证错误

    我们有一位最近更改了姓名的用户 假设旧用户名是 old name 新用户名是 new name 在 AD 中编辑详细信息并使用新用户名注销 登录后 我们的 ASP NET 应用程序显示旧名称 纯 ASP NET 无 MVC 使用 Windo
  • 如何在 obj-C 的 C 函数中向自己发送消息?

    我有一个 C 函数 音频队列服务中的回调函数 我想向自己发送消息 怎么做 如果我输入 self message 则会出现错误 Use of undeclared identifier self 您不会在实时回调中执行 objc 消息 例如音
  • Guzzle HTTP 请求从 POST 转换为 GET

    当我尝试向外部 API 发布帖子时 发生了一件非常奇怪的事情 我尝试向 URL 发出 POST 请求 但 Guzzle 发出 GET 请求 这是对此 API 的合法操作 但返回不同的内容 这是代码 request this gt clien
  • 在 ember 中如何在 Ember.Object.extend 上创建一个可以访问 json 服务的类方法

    很抱歉问这样一个简单的问题 但我正在考虑从 jQuery 迁移到 Ember 并试图在不使用 ember data 的情况下找出调用 响应 json 我的一个问题是人们如何建议使用类方法 举例来说 我有一个像这样的帖子对象 Hex Post
  • ARM ELF 对象内的函数大小不正确

    readelf 目标文件的输出 Symbol table symtab contains 15 entries Num Value Size Type Bind Vis Ndx Name 0 00000000 0 NOTYPE LOCAL
  • 通过CSS改变PNG图像的颜色?

    给定一个显示白色简单形状的透明 PNG 是否有可能通过 CSS 以某种方式改变它的颜色 某种覆盖或什么不是 您可以使用过滤器 webkit filter and filter 过滤器对于浏览器来说相对较新 但根据以下 CanIUse 表 超
  • java.net.URLEncoder.encode(String) 已弃用,我应该使用什么代替?

    我在使用时收到以下警告java net URLEncoder encode warning deprecation encode java lang String in java net URLEncoder has been deprec
  • 有条件地将列设置为 Postgres 中的默认值

    我有一个 PostgreSQL 8 4 表 其中有一个自动递增但可为空的整数列 我想更新一些列值 如果该列为 NULL 则将其设置为其默认值 这将是从序列自动生成的整数 but无论哪种情况我都想返回它的值 所以我想要这样的东西 UPDATE
  • 使用 ruby​​ 将存储为有符号的无符号整数转换回原始值

    C 程序将它认为是 64 位无符号整数放入 Postgres 数据库中类型为 int8 的列中 对于 Postgres int8 始终是 signed int8 没有 unsigned int8 这样的东西 因此 我的 Ruby 程序将从
  • Codeigniter 和 PHPWord

    我正在尝试阅读一些文件 所以我使用PHPWord 这是我在图书馆里得到的
  • Swift 2 为协议添加了协议一致性

    我可以通过 swift 扩展向协议添加协议一致性吗 Plain old protocol here protocol MyData var myDataID Int get 我想做MyData协议默认相等 只需比较ID extension
  • 让 Json.NET + MongoDB Bson 协同工作

    我正在尝试将一些 Json NET json 序列化与 MongoDB 结合起来 我有一个与此类似的结构 public class Master props public Detail Details get set public clas
  • 黄油刀不会注射

    我正在尝试使用牛油刀 http jakewharton github io butterknife 这些天我在 Android Studio 工作 但它因一些奇怪的问题而让我失望 我曾经在 eclipse 上尝试过 Butter Knife