尝试访问导入库中的方法时,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

Cocoapods:制作 Cocoapod - 导入 Alamofire 和其他库

如何导入 RecyclerView for Android L-preview