Gradle 在 Android 上构建失败 OSX Studio 旧版本和新版本

Gradle build failed on Android Studio old and new versions on OSX

我在 PC 上工作时成功构建了一个项目,在迁移到 OSX.

之前,我将其提交并推送到我的 Git 存储库

现在,我在 OSX 上安装了 Android studio 最新版本并尝试构建相同的项目,但它在构建资源时出错。在 Manifest 中构建资源时,出现多个错误

No resource found that matches the given name

用于可绘制对象和字符串。

在浏览网页时,我认为 gradle 的较新版本可能存在一些问题。因此,我将 AS 的安装降级为 AS 1.0,并使用旧的 gradle 2.2。不幸的是,这个版本的 gradle 也给出了同样的错误。

我的 build.gradle 如下所示:

apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"

defaultConfig {
    applicationId "xxx"
    minSdkVersion 16
    targetSdkVersion 21
    versionCode 4
    versionName "1.3"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
sourceSets {

    main {
        res.srcDirs = [
                "/src/main/res"
        ]
    }
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile files('libs/thermodosdk-1.0.18.jar')
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.google.android.gms:play-services:6.5.87'
compile 'com.android.support:support-v4:21.0.3'

顶层的 build.gradle 具有以下类路径:

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

堆栈跟踪:

Information:Gradle tasks [:app:generateDebugSources,     :app:generateDebugTestSources]
:app:preBuild
:app:preDebugBuild
:app:checkDebugManifest
:app:preReleaseBuild
:app:prepareComAndroidSupportAppcompatV72103Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42103Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServices6587Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources
/Users/vidhigoel/AndroidStudioProjects/OMGAndroid/app/build/intermediates/manifests/full/debug/AndroidManifest.xml
Error:(24, 23) No resource found that matches the given name (at 'icon' with value '@drawable/omg_app_icon').
Error:(25, 24) No resource found that matches the given name (at 'label' with value '@string/app_name').
Error:(27, 24) No resource found that matches the given name (at 'theme' with value '@style/AppTheme').
Error:(30, 28) No resource found that matches the given name (at 'label' with value '@string/app_name').
Error:(86, 28) No resource found that matches the given name (at 'label' with value '@string/app_name').
Error:(105, 28) No resource found that matches the given name (at 'label' with value '@string/app_name').
Error:(123, 28) No resource found that matches the given name (at 'label' with value '@string/app_name').
Error:(137, 28) No resource found that matches the given name (at 'label' with value '@string/title_activity_register_user').
...
Information:BUILD FAILED
Information:Total time: 4.462 secs
Information:17 errors
Information:0 warnings
Information:See complete output in console

请帮我解决这个问题。

只需更改您的 gradle 类路径。

替换

classpath 'com.android.tools.build:gradle:1.0.0'

classpath 'com.android.tools.build:gradle:2.0.0-alpha3'

编辑:

还需要添加您的旧版本 AppCompact,如下所示:

  dependencies {
...
 compile 'com.android.support:appcompat-v7:19.+'
...
}

试试这个link可能对你有帮助 Installing Gradle In OSX

请同时检查这一点

您的编译 SDK 版本必须与支持库的主要版本相匹配。

因为如果您使用的是版本 23 的支持库,则需要针对版本 23 的 Android SDK 进行编译。

或者,您可以通过切换到最新的支持库 v22 继续针对版本 22 的 Android SDK 进行编译。

您的 build.gradle:

中并不需要这部分内容
sourceSets {

    main {
        res.srcDirs = [
                "/src/main/res"
        ]
    }
}
  1. 这是默认值,你不需要把它放在那里。
  2. 你走错了路。正如我所说,这是默认路径,并不是真正需要的,但如果您仍想添加它,请 check this post on SO 查看如何正确添加它。

你可能只想说:

res.srcDirs = ['res']

build.gradle 中删除 sourceSets 部分。删除上述配置后,进行清理和重建。为了安全起见,还请执行 File - > Invalidate Cache and Restart

你试过了吗"Build/Clean Project"?