Android Studio Apply Changes 非静态方法无法引用,但方法是静态的
Android Studio Apply Changes non-static method cannot be referenced, but method is static
我在 Android Studio 中编译我的 android 应用程序时遇到问题。我收到这样的错误:
Error:(51, 48) error: non-static method buildUsernameUrlString(String)
cannot be referenced from a static context
还有这个:
Error:(63, 38) error: OAUTH_URL has private access in TwitchApi
我知道静态方法等的概念,这就是为什么我的 TwitchApi class 看起来像这样:
public class TwitchApi {
// more stuff here
public static String OAUTH_URL = Uri.parse("https://api.twitch.tv/kraken/oauth2/authorize")
.buildUpon()
.appendQueryParameter("response_type", "token")
.appendQueryParameter("client_id", CLIENT_ID)
.appendQueryParameter("redirect_uri", REDIRECT_URL)
.appendQueryParameter("scope", "user_read chat_login").build().toString();
public static String buildUsernameUrlString(String accessToken)
{
return BASE_URI
.buildUpon()
.appendQueryParameter("client_id", CLIENT_ID)
.appendQueryParameter("oauth_token", accessToken)
.build()
.toString();
}
}
所以我的方法显然是静态的,也是 public,属性 OAUTH_URL 是 public 也是静态的。
我这样调用方法:
String usernameUrlString = TwitchApi.buildUsernameUrlString(matcher.group(1));
奇怪的是,我只在执行 "Applying Changes" 时遇到此错误,这似乎是对更改的热交换,不会再次编译整个应用程序。
完整编译无错误
有人知道如何解决这个错误吗?我真的很喜欢 Apply Changes 功能,它大大加快了开发速度。
尝试删除 .build 文件夹并重建项目。它会解决你的问题。
我在 Android Studio 中编译我的 android 应用程序时遇到问题。我收到这样的错误:
Error:(51, 48) error: non-static method buildUsernameUrlString(String)
cannot be referenced from a static context
还有这个:
Error:(63, 38) error: OAUTH_URL has private access in TwitchApi
我知道静态方法等的概念,这就是为什么我的 TwitchApi class 看起来像这样:
public class TwitchApi {
// more stuff here
public static String OAUTH_URL = Uri.parse("https://api.twitch.tv/kraken/oauth2/authorize")
.buildUpon()
.appendQueryParameter("response_type", "token")
.appendQueryParameter("client_id", CLIENT_ID)
.appendQueryParameter("redirect_uri", REDIRECT_URL)
.appendQueryParameter("scope", "user_read chat_login").build().toString();
public static String buildUsernameUrlString(String accessToken)
{
return BASE_URI
.buildUpon()
.appendQueryParameter("client_id", CLIENT_ID)
.appendQueryParameter("oauth_token", accessToken)
.build()
.toString();
}
}
所以我的方法显然是静态的,也是 public,属性 OAUTH_URL 是 public 也是静态的。
我这样调用方法:
String usernameUrlString = TwitchApi.buildUsernameUrlString(matcher.group(1));
奇怪的是,我只在执行 "Applying Changes" 时遇到此错误,这似乎是对更改的热交换,不会再次编译整个应用程序。
完整编译无错误
有人知道如何解决这个错误吗?我真的很喜欢 Apply Changes 功能,它大大加快了开发速度。
尝试删除 .build 文件夹并重建项目。它会解决你的问题。