2015-10-20 10 views
5

私はいくつかの点で変更したpicasso libraryのローカルバージョンを使用しているAndroidプロジェクトを持っています。私はgradle buildを使用してコマンドラインからの私のプロジェクトをビルドしようとするたびしかし、私はいつもピカソが存在しないというエラーが表示されます。ローカル版のピカソをコンパイルするためのgradleの入手方法

$ ./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:checkpicasso:buildが誤って最後に配置されています

Tasks to be executed: [task ':compileLint', task ':copyDebugLint', task ':mergeDebugProguardFiles', task ':preBuild', task ':preDebugBuild', task ':checkDebugManifest', task ':prepareDebugDependencies', task ':compileDebugAidl', task ':compileDebugRenderscript', task ':generateDebugBuildConfig', task ':generateDebugAssets', task ':mergeDebugAssets', task ':generateDebugResValues', task ':generateDebugResources', task ':packageDebugResources', task ':processDebugManifest', task ':processDebugResources', task ':generateDebugSources', task ':processDebugJavaRes', task ':compileDebugJavaWithJavac', task ':packageDebugJar', task ':compileDebugNdk', task ':packageDebugJniLibs', task ':packageDebugLocalJar', task ':packageDebugRenderscript', task ':bundleDebug', task ':compileDebugSources', task ':assembleDebug', task ':copyReleaseLint', task ':mergeReleaseProguardFiles', task ':preReleaseBuild', task ':checkReleaseManifest', task ':prepareReleaseDependencies', task ':compileReleaseAidl', task ':compileReleaseRenderscript', task ':generateReleaseBuildConfig', task ':generateReleaseAssets', task ':mergeReleaseAssets', task ':generateReleaseResValues', task ':generateReleaseResources', task ':packageReleaseResources', task ':processReleaseManifest', task ':processReleaseResources', task ':generateReleaseSources', task ':processReleaseJavaRes', task ':compileReleaseJavaWithJavac', task ':packageReleaseJar', task ':compileReleaseNdk', task ':packageReleaseJniLibs', task ':packageReleaseLocalJar', task ':packageReleaseRenderscript', task ':bundleRelease', task ':compileReleaseSources', task ':assembleRelease', task ':assemble', task ':lint', task ':preDebugUnitTestBuild', task ':prepareDebugUnitTestDependencies', task ':processDebugUnitTestJavaRes', task ':compileDebugUnitTestJavaWithJavac', task ':compileDebugUnitTestSources', task ':mockableAndroidJar', task ':assembleDebugUnitTest', task ':testDebugUnitTest', task ':preReleaseUnitTestBuild', task ':prepareReleaseUnitTestDependencies', task ':processReleaseUnitTestJavaRes', task ':compileReleaseUnitTestJavaWithJavac', task ':compileReleaseUnitTestSources', task ':assembleReleaseUnitTest', task ':testReleaseUnitTest', task ':test', task ':check', task ':build', task ':android-autofittextview:assemble', task ':android-autofittextview:check', task ':android-autofittextview:build', task ':picasso:assemble', task ':picasso:check', task ':picasso:build']

私は特に私の0123与えられ、それが失敗している、:picasso:(assemble|check|build):compileDebugJavaWithJavacに実行する必要があると思うだろうディレクティブは、私のbuild.gradleファイルの依存関係セクションにあります。ここで

は私 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' 
} 

そして、ここで私のsettings.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 

注:

ここ
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のバージョンでありますこれはピカソ自身と何か関係がありますandroid-autofittextviewのローカルバージョンもコンパイルできます。

どのように私は適切にコンパイルし、ピカソの自分のローカルバージョンを含めることができますgradle得ることができます教えてください?暗闇の中で


ショットが、これは私のアンドロイドライブラリプロジェクトは.aarファイルを構築していない.jarファイルを、ので、何とかGradleのは、これらを認識しないされているという事実とは何かを持っているのだろうか有効な依存関係?

+0

picassoプロジェクトのgradleファイルが同じcompileSdkVersionで、buildToolsVersionがプロジェクトとして –

+0

@ eric247であることを確認してください。一致しているだけで効果はありません。 – esilver

+0

Androidスタジオを使用していますか? –

答えて

0

私はついに成功することができました。 Picassoには、ルートディレクトリがあり、次にそれぞれ異なるプロジェクト(ピカソ、ピカソサンプル、ピカソ - ポレッサー)を表す多数のサブディレクトリがあるプロジェクト構造があります。私はprojectDirを実際のライブラリのサブディレクトリの代わりにルートのpicassoディレクトリに設定していました。私は私の他の依存関係の1つで同様のことをしたこの

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

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

:したがって、私はこのことから私のsettings.gradleファイルを変更しました。代わりにこのように、この後者の例では、ライブラリディレクトリにあるbuild.gradleファイルがI親build.gradleに依存関係を持っていたので

project(':android-autofittextview').projectDir = \ 
    new File(settingsDir, '../../Interface/android-autofittextview/library') 

それはトリッキーです:

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

私はこれをしませんでした子供にコピーしなければならなかった。私は子供/ライブラリを意味すると理解している親プロジェクトに依存関係を作成できるはずです。

しかし、私は最終的に、このアプローチを使用してコンパイルすることができました。

関連する問題