找不到与库中给定名称匹配的资源

时间:2014-06-29 02:44:12

标签: android gradle android-studio

当尝试通过Android studio或Gradle构建我的项目时,我收到以下错误消息:

  

/home/geecko/Documents/Android/OpenLauncher/app/build/intermediates/manifests/debug/AndroidManifest.xml:95:   错误:错误:找不到与给定名称匹配的资源(at   '主题'有价值' @ style / Theme.WallpaperCropper')   /home/geecko/Documents/Android/OpenLauncher/app/build/intermediates/manifests/debug/AndroidManifest.xml:108:   错误:错误:找不到与给定名称匹配的资源(在'图标'   有价值的' @ mipmap / ic_launcher_wallpaper')   /home/geecko/Documents/Android/OpenLauncher/app/build/intermediates/manifests/debug/AndroidManifest.xml:108:   错误:错误:找不到与给定名称匹配的资源(at   '标签'有价值' @ string / crop_wallpaper')   /home/geecko/Documents/Android/OpenLauncher/app/build/intermediates/manifests/debug/AndroidManifest.xml:108:   错误:错误:找不到与给定名称匹配的资源(at   '主题'有价值' @ style / Theme.WallpaperCropper')

这些资源在我的Manifest中引用并在库中声明(WallpaperPicker,package" com.android.launcher3"),它们完美编译(我可以使用gradle构建它,甚至可以看到.aar文件)并在主应用程序的build.gradle中列为依赖项。

以下是我的文件:

- > /settings.gradle

include ':app' 
include ':WallpaperPicker'

- > /app/build.gradle

    buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.+'
    }
}

    apply plugin: 'com.android.application'

    android {
    compileSdkVersion 20
    buildToolsVersion '20.0.0'
    defaultConfig {
        applicationId 'be.geecko.openlauncher'
        minSdkVersion 16
        targetSdkVersion 19
        versionCode 1
        versionName '0.1'
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

    dependencies {
    compile project(':WallpaperPicker')
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

- > /app/AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="be.geecko.openlauncher">

    <permission
        android:name="com.android.launcher3.permission.PRELOAD_WORKSPACE"
        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
        android:protectionLevel="signatureOrSystem" />
    <permission
        android:name="com.android.launcher.permission.INSTALL_SHORTCUT"
        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
        android:protectionLevel="dangerous"
        android:label="@string/permlab_install_shortcut"
        android:description="@string/permdesc_install_shortcut" />
    <permission
        android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"
        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
        android:protectionLevel="dangerous"
        android:label="@string/permlab_uninstall_shortcut"
        android:description="@string/permdesc_uninstall_shortcut" />
    <permission
        android:name="com.android.launcher3.permission.READ_SETTINGS"
        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
        android:protectionLevel="normal"
        android:label="@string/permlab_read_settings"
        android:description="@string/permdesc_read_settings" />
    <permission
        android:name="com.android.launcher3.permission.WRITE_SETTINGS"
        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
        android:protectionLevel="normal"
        android:label="@string/permlab_write_settings"
        android:description="@string/permdesc_write_settings" />

    <permission
        android:name="com.android.launcher3.permission.RECEIVE_LAUNCH_BROADCASTS"
        android:protectionLevel="signature" />

    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.SET_WALLPAPER" />
    <uses-permission android:name="android.permission.SET_WALLPAPER_HINTS" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission
        android:name="android.permission.BIND_APPWIDGET"
        tools:ignore="ProtectedPermissions" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
    <uses-permission android:name="com.android.launcher.permission.WRITE_SETTINGS" />
    <uses-permission android:name="com.android.launcher3.permission.READ_SETTINGS" />
    <uses-permission android:name="com.android.launcher3.permission.WRITE_SETTINGS" />
    <uses-permission android:name="com.android.launcher3.permission.RECEIVE_LAUNCH_BROADCASTS" />

    <application
        android:name="com.android.launcher3.LauncherApplication"
        android:label="@string/application_name"
        android:icon="@mipmap/ic_launcher_home"
        android:hardwareAccelerated="true"
        android:largeHeap="@bool/config_largeHeap"
        android:supportsRtl="true">

        <uses-library
              android:name="com.android.launcher3" 
              android:required="true"/>

        <activity
            android:name="com.android.launcher3.Launcher"
            android:launchMode="singleTask"
            android:clearTaskOnLaunch="true"
            android:stateNotNeeded="true"
            android:theme="@android:style/Theme"
            android:windowSoftInputMode="adjustPan"
            android:screenOrientation="nosensor">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.HOME" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.MONKEY" />
            </intent-filter>
        </activity>

        <activity
            android:name="com.android.launcher3.ToggleWeightWatcher"
            android:label="@string/toggle_weight_watcher"
            android:enabled="@bool/debug_memory_enabled"
            android:icon="@mipmap/ic_launcher_home">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:name="com.android.launcher3.LauncherWallpaperPickerActivity"
            android:theme="@style/Theme.WallpaperCropper"
            android:label="@string/pick_wallpaper"
            android:icon="@com.android.launcher3:mipmap/ic_launcher_wallpaper"
            android:finishOnCloseSystemDialogs="true"
            android:process=":wallpaper_chooser">
            <intent-filter>
                <action android:name="android.intent.action.SET_WALLPAPER" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity
            android:name="com.android.launcher3.WallpaperCropActivity"
            android:theme="@style/Theme.WallpaperCropper"
            android:label="@string/crop_wallpaper"
            android:icon="@mipmap/ic_launcher_wallpaper"
            android:finishOnCloseSystemDialogs="true"
            android:process=":wallpaper_chooser">
            <intent-filter>
                <action android:name="android.service.wallpaper.CROP_AND_SET_WALLPAPER" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="image/*" />
            </intent-filter>
        </activity>

        <!-- Debugging tools -->
        <activity
            android:name="com.android.launcher3.MemoryDumpActivity"
            android:theme="@android:style/Theme.NoDisplay"
            android:label="@string/debug_memory_activity"
            android:enabled="@bool/debug_memory_enabled"
            android:excludeFromRecents="true"
            android:icon="@mipmap/ic_launcher_home">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <service
            android:name="com.android.launcher3.MemoryTracker"
            android:enabled="@bool/debug_memory_enabled"></service>

        <!-- Intent received used to prepopulate the default workspace. -->
        <receiver
            android:name="com.android.launcher3.PreloadReceiver"
            android:permission="com.android.launcher3.permission.PRELOAD_WORKSPACE">
            <intent-filter>
                <action android:name="com.android.launcher3.action.PRELOAD_WORKSPACE" />
            </intent-filter>
        </receiver>

        <receiver android:name="com.android.launcher3.WallpaperChangedReceiver">
            <intent-filter>
                <action android:name="android.intent.action.WALLPAPER_CHANGED" />
            </intent-filter>
        </receiver>

        <!-- Intent received used to install shortcuts from other applications -->
        <receiver
            android:name="com.android.launcher3.InstallShortcutReceiver"
            android:permission="com.android.launcher3.permission.INSTALL_SHORTCUT">
            <intent-filter>
                <action android:name="com.android.launcher3.action.INSTALL_SHORTCUT" />
            </intent-filter>
        </receiver>

        <!-- Intent received used to uninstall shortcuts from other applications -->
        <receiver
            android:name="com.android.launcher3.UninstallShortcutReceiver"
            android:permission="com.android.launcher3.permission.UNINSTALL_SHORTCUT">
            <intent-filter>
                <action android:name="com.android.launcher3.action.UNINSTALL_SHORTCUT" />
            </intent-filter>
        </receiver>

        <!-- New user initialization; set up initial wallpaper -->
        <receiver
            android:name="com.android.launcher3.UserInitializeReceiver"
            android:exported="false">
            <intent-filter>
                <action android:name="android.intent.action.USER_INITIALIZE" />
            </intent-filter>
        </receiver>

        <receiver android:name="com.android.launcher3.PackageChangedReceiver">
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_CHANGED" />
                <action android:name="android.intent.action.PACKAGE_REPLACED" />
                <action android:name="android.intent.action.PACKAGE_REMOVED" />

                <data android:scheme="package"></data>
            </intent-filter>
        </receiver>

        <!-- The settings provider contains Home's data, like the workspace favorites -->
        <provider
            android:name="com.android.launcher3.LauncherProvider"
            android:authorities="com.android.launcher3.settings"
            android:exported="true"
            android:writePermission="com.android.launcher3.permission.WRITE_SETTINGS"
            android:readPermission="com.android.launcher3.permission.READ_SETTINGS" />

        <meta-data
            android:name="android.nfc.disable_beam_default"
            android:value="true" />

    </application>
</manifest>

因此,似乎我的主要项目(&#39;:app&#39;)无法访问我的资源库(&#39;:WallPaperPicker&#39;)。我无法弄清楚原因......以下是项目根目录的内容:

  

app / gradle.properties settings.gradle   build / gradlew WallpaperPicker /   build.gradle gradlew.bat local.properties   gradle / OpenLauncher.iml

有什么想法吗?我真的无法理解......

1 个答案:

答案 0 :(得分:4)

猜测一些东西后,我认为图书馆没有被宣布为android-library。因此,在这种情况下,将build.gradle编辑为

apply plugin: 'com.android.library'

应该这样做。