SlidingMenu集成问题

4
我一直在尝试在我的Android Studio项目中使用SlidingMenu库,按照此问题中提供的指南进行操作:

如何在Android Studio上导入SlidingMenu?

我已经成功获得了所描述的文件结构,并且同步并构建了项目,没有出现错误。然而,在尝试将Sliding Menu导入我的应用程序源文件时,我遇到了符号解析错误。

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; // Error message: Cannot resolve symbol 'SlidingMenu'
import com.jeremyfeinstein.slidingmenu.lib.BuildConfig;

第二个导入是Android Studio建议的唯一一个,但是当我按照给定的路径时,甚至找不到我的项目中的BuildConfig文件。
我需要改变什么才能把com.jeremyfeinstein.slidingmenu.lib中的所有类导入我的类中?
我的应用gradle文件如下:
apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.example.me.appname"
        minSdkVersion 17
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.0'
    compile 'com.google.android.gms:play-services:7.0.0'
    compile project(':libraries:SlidingMenu')
}

SlidingMenu的Gradle文件:
buildscript {
    // define the repo which is to use
    repositories {
        mavenCentral()
    }
    // define the classpath for Gradle Android Plugin
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.+'
    }
}

// declaring that the project is a library
apply plugin: 'android-library'

// declaring all dependencies the project needs
dependencies {
    compile 'com.android.support:support-v4:19.0.0'
}

android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"

    defaultConfig {
        // this values you can read out from the Manifest (but I add the right values for you)
        minSdkVersion 17
        targetSdkVersion 21
    }

    // because Android Studio has a different file structure than Eclipse
    // you have to say Android Studio where the files are located
    sourceSets{
        main{
            java.srcDirs = ['src/main/java']
            res.srcDirs = ['src/main/res']

            manifest.srcFile 'AndroidManifest.xml'
        }
    }
}

项目设置 Gradle:

include ":libraries:SlidingMenu", ':app'

你尝试过使用它的AAR端口吗?https://github.com/jzaccone/SlidingMenu-aar - shkschneider
1个回答

5

获取库的AAR端口(v1.3)。

由于GitHub页面已经关闭,因此您需要手动导入该AAR

顶部build.gradle文件:

repositories {
    flatDir {
        dirs 'libs'
    }
}

将AAR文件放置在您的模块的libs文件夹中,然后在您的模块的build.gradle文件中:

dependencies {
    compile(name:'library-1.3', ext:'aar')
}

现有的SlidingManu库是否会干扰AAR版本,还是我可以在测试AAR之前将其所有内容留在项目中?@shkschneider - Percolator
它与同一个packageName共享(实际上通过github链接),因此可能会导致冲突。请仅使用AAR版本。 - shkschneider
你的解决方案很有效!再次感谢你的帮助,这个问题已经困扰我好几天了,现在我终于可以继续进行了!@shkschneider - Percolator
很高兴解决了你的问题。感谢那个AAR端口。请随意接受我的答案来关闭那个问题 ;) - shkschneider
Gradle编译通过了,但我无法导入类。有什么线索吗? - htafoya
@shkschneider 如果我们在解决同样的问题时使用Eclipse呢? - Ananya Srivastav

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接