我有一個Android項目,使用本地版本的picasso library,我修改了幾種方法。然而,每當我試圖使用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:check
和picasso: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']
我認爲:picasso:(assemble|check|build)
需要之前:compileDebugJavaWithJavac
,它未能上運行,尤其是考慮我的compile project(':picasso')
指令在我的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
文件:
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
請注意,我不相信這與畢加索本身有什麼關係,因爲我看到了同樣的問題也要編譯本地版本android-autofittextview。
任何人都可以告訴我如何得到gradle正確編譯和包含我的本地版本的畢加索?
瞎猜,但我不知道這有什麼關係的事實,我的Android庫項目正在建設.aar文件,而不是.jar文件,所以不知何故gradle這個無法識別這些作爲有效的依賴關係?
確保picasso項目中的gradle文件與您的項目具有相同的compileSdkVersion和buildToolsVersion –
@ eric247我只是確保它們匹配,沒有效果。 – esilver
您使用的是Android Studio嗎? –