Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialJonathan Grieve
Treehouse Moderator 91,253 PointsBindView Annotations not working
Hi all.
I'm not sure what's happening here as I'm using the latestversion of ButterKnife.
When I'm using the Bind variables the error states...
can't find method value
I'm stumped. Any ideas? :)
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "uk.co.jonniegrieve.stormy"
minSdkVersion 14
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.1.1'
testCompile 'junit:junit:4.12'
compile 'com.squareup.okhttp3:okhttp:3.6.0'
compile 'com.google.android.gms:play-services-appindexing:9.8.0'
compile 'com.jakewharton:butterknife:8.5.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
}
private CurrentWeather mCurrentWeather;
@BindView(R.id.timeLabel) TextView mTimeLabel;
@BindView(R.id.temperatureLabel) TextView mTemperatureLabel;
@BindView(R.id.humidityValue) TextView mHumidityValue;
@BindView(R.id.precipValue) TextView mPrecipValue;
@BindView(R.id.summaryLabel) TextView mSummaryLabel;
@BindView(R.id.iconImageView) ImageView mIconImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
//set up string to query API
String apiKey = "c967557031449620255ff3c64b443a26";
double latitude = 37.8267;
double longitude = -122.4233;
String forecastURL = "https://api.darksky.net/forecast/" + apiKey + "/" + latitude + "," + longitude;
if (isNetworkAvailable()) {
//make a new OkHttpClient object
OkHttpClient client = new OkHttpClient();
//new request object - method chaining
Request request = new Request.Builder()
.url(forecastURL)
.build();
//make a request from a Call class
Call call = client.newCall(request);
//make and asynchronous call with the enqueue method
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
try {
if (response.isSuccessful()) {
String jsonData = response.body().string();
Log.v(TAG, jsonData);
mCurrentWeather = getCurrentDetails(jsonData);
} else {
alertUserAboutError();
}
} catch (IOException e) {
Log.e(TAG, "Exception caught", e);
} catch (JSONException e) {
Log.e(TAG, "JSON Exception Caught", e);
}
}
});
} else {
Toast.makeText(this, getString(R.string.network_unavailable_message),
Toast.LENGTH_LONG).show();
//code challenge: make into Dialog fragment
}
//log to console
Log.d(TAG, "Main UI code is running!");
}
Ben Deitch
Treehouse TeacherWhere does the error happen? Also, is your project on GitHub?
Jonathan Grieve
Treehouse Moderator 91,253 PointsHi Ben. Thanks for responding
My project isn't on GitHub, no. Although I have done the Android GitHub workshop, I should probably think about doing that more. :)
The errors are in the @BindValue annotations where you get the ids of the components. i.e. R.id.timeLabel
.
The added complication now is I've played around without the build file a bit more so what I'll do is create a repo later on tomorrow (it's late here at the moment) and lost it here as soon as I can :)
Jonathan Grieve
Treehouse Moderator 91,253 PointsHi Ben Deitch
Thanks again for looking at this for me.
I pushed everything I have from the command line in the end :) You'll find all the errors in the MainActivity.java file and you made need to poke around the gradle files too. Thanks
1 Answer
Ben Deitch
Treehouse TeacherYou're using the wrong BindView. Somehow you've created your own BindView interface, and are using that instead of the BindView from ButterKnife. My best guess would be that you used ALT+ENTER on BindView before adding the ButterKnife import, and so instead of adding the import it just created a new BindView interface. Hope that helps!
Jonathan Grieve
Treehouse Moderator 91,253 PointsHi Ben,
A couple of things....
Did I actually link you to my GitHub repo? Did I forget to do that? and if so, how did you work it out? :)
Anyway, when I try to use @BindView annotation, I can only seem to be able to select (uk.co.jonniegrieve.Stormy)
or @BindViews (butterknife)
But I get no errors if I manually import import butterknife.BindView;
into the MainActivity.
All very confusing but it looks like I've found a way forward?
Ben Deitch
Treehouse TeacherNope, but I figured I'd search your name on GitHub before bugging you about it ;) And yep, looks like you're in the clear!
Jonathan Grieve
Treehouse Moderator 91,253 PointsJonathan Grieve
Treehouse Moderator 91,253 PointsCan anyone help? 2 days through and I can't progress through the course without fixing this.
I've tried
I'm out of ideas.