资源程序集失败

时间:2016-08-02 06:29:15

标签: android xml r.java-file android-gradle-2.0

我一直致力于个人项目,但在过去的几天里,构建还没有更新我的R.java。我不确定是什么原因引起的。我没有在XML资源中看到任何语法错误,但 工作的那一次是我几天前手动生成它(app:generateDebugResources),并且在时间项目中唯一的资源是res / raw,一个HTML文档。从那时起,我已经编写了我正在实现的最小功能所需的大部分内容,并删除了R.java以解决问题。 Android Studio似乎唯一有兴趣抱怨的是unrecognized symbol 'R'。我觉得我撞墙了;我将发布我的XML以及我的构建配置和设置。我愿意接受任何有关为什么Gradle可能无法打包我的资源以及建设性批评的建议。进程内构建已禁用。

settings.gradle:

include 'app'
//include 'nanohttpd'

project(':app').projectDir = new File('app')
//project(':nanohttpd').projectDir = new File('nanohttpd')

的build.gradle:

apply plugin: 'java'

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.2'
    }
}

project(':app') {
    dependencies {
    }
}

/*
project(':nanohttpd') {
    dependencies {
    }
}
*/

:应用程序:的build.gradle:

apply plugin: 'com.android.application'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 16
    buildToolsVersion "24.0.1"

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        //compile project(':nanohttpd')
        compile group: 'commons-codec', 
                name: 'commons-codec', version: '1.10'
        compile group: 'org.nanohttpd', 
                name: 'nanohttpd', version: '2.3.0'
    }

    sourceSets {
        main {
            java {
                srcDir 'src/java'
            }
            resources {
                srcDir 'src/res'
            }
            manifest {
                srcFile 'src/android-manifest.xml'
            }
        }
    }

   defaultConfig {
       minSdkVersion 16
       targetSdkVersion 16
       applicationId "site.wyrxce.httpclip"
   }

   buildTypes {
       release {
           minifyEnabled true
           //signingConfig signingConfigs.release
           proguardFile getDefaultProguardFile('proguard-android.txt')
       }
       debug {
           initWith release
           applicationIdSuffix ".debug"
           signingConfig null
           debuggable true
       }
   }
}

的src / RES / XML / prefs_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:key="PreferenceScreen_main">

    <SwitchPreference
        android:key="SwitchPreference_runServer"
        android:defaultValue="false"/>

    <EditTextPreference
        android:key="EditTextPreference_hostPort"
        android:defaultValue="3939"
        android:numeric="integer"
        android:maxLength="5"/>
</PreferenceScreen>

的src / RES /值/ strings.xml中:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="bad_request">Unrecognized input</string>
    <string name="bad_passwd">Invalid credentials</string>
    <string name="internal_err">Internal server error</string>

    <string name="clipboard_desc">HTTPClip Input</string>

    <string name="toasttext_serverstarted">
            HTTPClip service now listening</string>
    <string name="toasttext_serverstopped">
            HTTPClip Service stopped</string>

    <string name="title_switchpreference_runserver">
            Run HTTPClip service</string>"

    <string name="title_edittextpreference_hostport">Host Port</string>
    <string name="summary_edittextpreference_hostport">
            Listening port for HTTP Daemon</string>
</resources>

1 个答案:

答案 0 :(得分:0)

问题解决了!我只是手动运行AAPT并检查输出;它让我直接看到了我在XML资源中犯的一个错误。 Gradle的任务现在可以毫无问题地生成R.java。