Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何让gradle编译毕加索的本地版本_Android_Gradle - Fatal编程技术网

Android 如何让gradle编译毕加索的本地版本

Android 如何让gradle编译毕加索的本地版本,android,gradle,Android,Gradle,我有一个Android项目,它使用了一个本地版本,我已经用几种方式修改了这个版本。但是,每当我尝试使用gradle build从命令行构建项目时,总是会出现一个错误,即毕加索不存在: $ ./gradlew build :compileLint :copyDebugLint UP-TO-DATE :mergeDebugProguardFiles UP-TO-DATE :preBuild UP-TO-DATE :preDebugBuild UP-TO-DATE :checkDebugManife

我有一个Android项目,它使用了一个本地版本,我已经用几种方式修改了这个版本。但是,每当我尝试使用
gradle build
从命令行构建项目时,总是会出现一个错误,即毕加索不存在:

$ ./gradlew build 
:compileLint
:copyDebugLint UP-TO-DATE
:mergeDebugProguardFiles UP-TO-DATE
:preBuild UP-TO-DATE
:preDebugBuild UP-TO-DATE
:checkDebugManifest
:prepareDebugDependencies
:compileDebugAidl UP-TO-DATE
:compileDebugRenderscript UP-TO-DATE
:generateDebugBuildConfig UP-TO-DATE
:generateDebugAssets UP-TO-DATE
:mergeDebugAssets UP-TO-DATE
:generateDebugResValues UP-TO-DATE
:generateDebugResources UP-TO-DATE
:packageDebugResources UP-TO-DATE
:processDebugManifest UP-TO-DATE
:processDebugResources UP-TO-DATE
:generateDebugSources UP-TO-DATE
:processDebugJavaRes UP-TO-DATE
:compileDebugJavaWithJavac
/Users/me/project/src/com/example/myproject/MyView.java:30: error: package com.squareup.picasso does not exist
import com.squareup.picasso.Picasso;
此外,当我使用
--info
运行时,我可以看到它正在组装任务,但是
picasso:check
picasso:build
的末尾位置不正确:

要执行的任务:[task':CompileNet',task':copyDebugLint',task':mergeDebugProguardFiles',task':preBuild',task':PredebugBugBugBugManifest',task':prepareDebugDependencies',task':CompiledBugRenderScript',task':GeneratedBugBugAssets',task':mergeDebugAssets',task':GeneratedBugResValues',task':generateDebugResources',task':packageDebugResources',task':processDebugManifest',task':generateDebugSources',task':processDebugJavaRes',task':processDebugJavaRes',task':packageDebugJniLibs',task':packageDebugLocalJar',task':packageDebugRenderscript',task':bundleDebug',task':compileDebugSources',task':assembleDebug',task':copyreaselink',task':mergeReleaseProguardFiles',task':preReleaseBuild',task':checkreleasemistent',task':compileReleaseRenderscript',task':generatereeasebuildconfig',任务:generateReleaseAssets',任务:mergeReleaseAssets',任务:generateReleaseResValues',任务:generateReleaseResources',任务:processReleaseManifest',任务:processReleaseResources',任务:processReleaseJavaRes',任务:compileReleaseJavaWithJavac',任务:packageReleaseJar“,任务”:CompilerReleaseNDK',任务”:packageReleaseJniLibs',任务”:PackageReleaseElocaljar',任务”:packageReleaseRenderscript',任务”:Bundrelease',任务”:CompilerReleaseSources',任务”:Assemblerease',任务”:assemble',任务”:preDebugUnitTestBuild',任务”:prepareDebugUnitTestDependencies',任务”:processDebugUnitTestJavaRes',任务“:CompiledBugUnitTestJavaWithJavaC”,任务“:CompiledBugUnitTestSources”,任务“:mockableAndroidJar”,任务“:AssembleBugUnitTest”,任务“:testDebugUnitTest”,任务“:preReleaseUnitTestBuild”,任务“:prepareReleaseUnitTestDependencies”,任务“:processReleaseUnitTestJavaRes”,任务“:CompilerReleaseUnitTestJavaWithJavaC”,任务“:CompilerReleaseUnitTestSources',task':AssemblereAseUnitTest',task':testReleaseUnitTest',task':test',task':check',task':android autofittextview:assemble',task':android autofittextview:build',task':picasso:assemble',task':picasso:check',task':picasso:build']

我认为
:picasso:(assembly | check | build)
需要在
:compileDebugJavaWithJavac
之前运行,它失败了,特别是考虑到我build.gradle文件依赖项部分中的
编译项目(':picasso')
指令

这是我的
build.gradle
文件:

buildscript {
    repositories {
        mavenCentral()
    }

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

apply plugin: 'android-library'

android {
    compileSdkVersion 19
    buildToolsVersion '23.0.1'

    sourceSets {
      main {
          manifest.srcFile 'AndroidManifest.xml'
          java.srcDirs = ['src']
          resources.srcDirs = ['src']
          aidl.srcDirs = ['src']
          renderscript.srcDirs = ['src']
          res.srcDirs = ['res']
          assets.srcDirs = ['assets']
      }
    }

}

dependencies {
    repositories {
        mavenCentral()
    }

    compile project(':picasso')
    compile project(':android-autofittextview')
    compile 'org.apache.httpcomponents:httpmime:4.2.3'
}
include ':myproject'

include ':picasso'
project(':picasso').projectDir = \
  new File(settingsDir, '../../../Lib/picasso')

include ':android-autofittextview'
project(':android-autofittextview').projectDir = \
  new File(settingsDir, '../../../Interface/android-autofittextview')
这是我的
设置.gradle
文件:

buildscript {
    repositories {
        mavenCentral()
    }

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

apply plugin: 'android-library'

android {
    compileSdkVersion 19
    buildToolsVersion '23.0.1'

    sourceSets {
      main {
          manifest.srcFile 'AndroidManifest.xml'
          java.srcDirs = ['src']
          resources.srcDirs = ['src']
          aidl.srcDirs = ['src']
          renderscript.srcDirs = ['src']
          res.srcDirs = ['res']
          assets.srcDirs = ['assets']
      }
    }

}

dependencies {
    repositories {
        mavenCentral()
    }

    compile project(':picasso')
    compile project(':android-autofittextview')
    compile 'org.apache.httpcomponents:httpmime:4.2.3'
}
include ':myproject'

include ':picasso'
project(':picasso').projectDir = \
  new File(settingsDir, '../../../Lib/picasso')

include ':android-autofittextview'
project(':android-autofittextview').projectDir = \
  new File(settingsDir, '../../../Interface/android-autofittextview')
这是我的gradle版本:

$ gradle --version

------------------------------------------------------------
Gradle 2.7
------------------------------------------------------------

Build time:   2015-09-14 07:26:16 UTC
Build number: none
Revision:     c41505168da69fb0650f4e31c9e01b50ffc97893

Groovy:       2.3.10
Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM:          1.8.0_51 (Oracle Corporation 25.51-b03)
OS:           Mac OS X 10.10.5 x86_64
请注意,我不认为这与毕加索本身有任何关系,因为我也看到了同样的问题,试图编译一个本地版本的

有谁能告诉我,我怎样才能让gradle正确地编译并包含我的本地版本的毕加索



拍摄于黑暗中,但我想知道这是否与我的android库项目正在构建文件而不是.jar文件有关,因此gradle不知何故没有将这些文件视为有效的依赖项?

我终于能够成功构建。毕加索有一个项目结构,其中有一个根目录,然后有大量的sub目录,每个目录代表不同的项目(毕加索、毕加索示例、毕加索pollexor)。我将projectDir设置为根毕加索目录,而不是实际的库子目录。因此,我更改了我的settings.gradle文件:

project(':picasso').projectDir = \
  new File(settingsDir, '../../../Lib/picasso')
对此

project(':picasso').projectDir = \
  new File(settingsDir, '../../../Lib/picasso/picasso')
我在我的另一个依赖项中做了类似的事情。因此,不是:

project(':android-autofittextview').projectDir = \
  new File(settingsDir, '../../Interface/android-autofittextview')
我这样做:

project(':android-autofittextview').projectDir = \
  new File(settingsDir, '../../Interface/android-autofittextview/library')
这很棘手,因为在后一个示例中,库目录中的build.gradle文件依赖于父build.gradle,我必须将其复制到子项目中。似乎我应该能够在父项目上创建一个依赖项,它可以理解我指的是子/库


但最终我还是能够使用这种方法进行编译。

确保毕加索项目中的gradle文件具有与您的相同的CompileSDK版本和buildToolsVersionproject@eric247我只是确保它们匹配,没有效果。你在使用Android Studio吗?还没有。我正在尝试首先从OSX的命令行编译。