继承库中不存在Android gradle包R.

时间:2014-07-20 20:11:26

标签: android gradle android-resources android-gradle

我无法使用资源" net.londatiga.android.R.drawable.menu_down_arrow"文件来自" NewQuickAction3D"继承库中的库称为" AndroidXXXLib",但我可以使用其他类。

我在gradle build期间收到错误"错误:包net.londatiga.android.R不存在"。 如何修复构建脚本以具备使用能力" net.londatiga.android.R"在我的继承人图书馆?

主要目标是能够在继承库中使用父库中的android资源。

项目之间存在依赖关系:

  • AndroidXXXDemo
    • AndroidXXXLib
      • DragSortListView
      • NewQuickAction3D
根文件夹中的

settings.gradle 文件包含:

include ':libraries:DragSortListView:DragSortListViewLib'
include ':libraries:NewQuickAction3D:NewQuickAction3DLib'
include ':AndroidXXXLib'
include ':AndroidXXXDemo'

AndroidXXXLib 内的 build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.+'
    }
}
apply plugin: 'android-library'
apply plugin: 'idea'

repositories {
    mavenCentral()
}

android {

    compileSdkVersion 19
    buildToolsVersion '19.1.0'

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile project(':libraries:DragSortListView:DragSortListViewLib')
    compile project(':libraries:NewQuickAction3D:NewQuickAction3DLib')
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19.+'
    compile 'com.android.support:support-v4:19.0.+'
    compile 'net.simonvt.menudrawer:menudrawer:3.0.+@aar'
    compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
}

想法项目看起来像:

enter image description here

1 个答案:

答案 0 :(得分:4)

问题已解决。

构建工具合并所有资源,这就是为什么必须使用我的继承库的主要R文件而不是" net.londatiga.android.R"。

注意:还需要确保项目资源中没有相同的布局名称,以避免与缺少视图ID相关的错误(Priority Order for Library Dependencies