尝试访问导入库中的方法时,Android Studio 显示“无法解析符号”
Posted
技术标签:
【中文标题】尝试访问导入库中的方法时,Android Studio 显示“无法解析符号”【英文标题】:Android Studio says "Cannot resolve symbol" when trying to access method in imported library 【发布时间】:2014-10-10 13:20:35 【问题描述】:我正在运行 android Studio 0.8.6 并导入了两个 Firebase 库,以便在我的项目中使用。
我设法创建 Firebase 简单登录类的对象,以及默认的 Firebase 对象。然而。当我尝试访问这些对象的任何方法时,Android Studio 固执地说“无法解析符号”。
这是我的代码(基本上是 Firebase 快速入门示例代码):
Firebase myRef = new Firebase("https://xxxxxxxx.firebaseIO.com/");
SimpleLogin authClient = new SimpleLogin(myRef, this);
authClient.checkAuthStatus(new SimpleLoginAuthenticatedHandler()
@Override
public void authenticated(FirebaseSimpleLoginError error, FirebaseSimpleLoginUser user)
if (error != null)
// Oh no! There was an error performing the check
else if (user == null)
// No user is logged in
else
// There is a logged in user
);
authClient.createUser("email@example.com", "very secret", new SimpleLoginAuthenticatedHandler()
public void authenticated(FirebaseSimpleLoginError error, FirebaseSimpleLoginUser user)
if(error != null)
// There was an error creating this account
else
// We created a new user account
);
无法解析的是方法'.checkOutStatus'和'.createUser'。
我一直在尝试这里描述的所有方法来修复它,但没有任何结果。 我还在下面附上了我的 build.gradle 文件:
buildscript
repositories
mavenCentral()
dependencies
classpath 'com.android.tools.build:gradle:0.12.+'
apply plugin: 'android'
repositories
mavenCentral()
android
compileSdkVersion 19
buildToolsVersion "19.1.0"
defaultConfig
minSdkVersion 16
targetSdkVersion 19
dependencies
// Support Libraries
compile 'com.android.support:appcompat-v7:19.1.0'
compile files('libs/firebase-simple-login-1.4.1.jar')
compile files('libs/firebase-client-jvm-1.0.16.jar')
compile fileTree(dir: 'libs', include: ['*.jar'])
提前致谢! :)
【问题讨论】:
尝试同步项目。 您不需要 .jar 文件,您只需添加compile 'com.firebase:firebase-simple-login:1.4.1'
然后 Gradle 同步 - 它会自动下载并将 lib 包含到您的项目中。
@asylume 我听从了你的建议,但是 gradle sync 失败并说: Failed to find: com.firebase:firebase-simple-login:1.4.1 。有什么想法吗?
@user3537089 抱歉,刚刚检查了 maven rep 并且有 1.4.2 版本,所以使用:compile 'com.firebase:firebase-simple-login:1.4.2'
@asylume 解决了 gradle 问题,好吧 :) 但我仍然无法访问我的 firebase 对象的那些方法 :(
【参考方案1】:
要使用 Firebase 消息服务,您需要将以下依赖项添加到应用的 build.gradle 文件中:
compile 'com.google.firebase:firebase-messaging:9.4.0'
所有其他 firebase 依赖文件是:
dependencies
apply plugin: 'com.google.gms.google-services'
compile 'com.google.firebase:firebase-core:10.0.1'
compile 'com.google.firebase:firebase-database:10.0.1'
compile 'com.firebase:firebase-client-android:2.5.0'
compile 'com.google.firebase:firebase-messaging:9.4.0'
我有同样的问题,但感谢这个答案:
https://***.com/a/39353961/4836759
【讨论】:
【参考方案2】:要解决符号问题,请考虑您的项目是否有一个不在根目录中的settings.gradle
,Android Studio 中的a bug 会导致它无法正确读取子模块。
这是我对另一个与您的问题相似的问题的回答:https://***.com/a/25224773/936067
【讨论】:
谢谢,但它并没有真正奏效,所以我切换回 Eclipse。没有足够的时间完全解决这个问题,所以我得稍后再做。无论如何,非常感谢您的帮助:)以上是关于尝试访问导入库中的方法时,Android Studio 显示“无法解析符号”的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.Android Java绑定库运行时失败访问本机库
访问类库中的mustoverride属性时发生AccessViolationException