我正在嘗試在我的android gradle腳本中集成ORMLite數據「編譯器」實用程序的運行。我已經建立了如何使用所需的依賴關係將其放置在構建流程中,以確保它在java編譯後運行,並且第二個任務將使用aapt更新帶有生成的數據庫定義文件的apk。Gradle JavaExec任務失敗,在Android Studio中找不到庫類錯誤
我的主要問題是,我不能讓我的OrmLiteConfigUtil擴展的類來運行,因爲JavaExec任務無法找到OrmLiteConfigUtil類
Error:Gradle: java.lang.ClassNotFoundException: com.j256.ormlite.android.apptools.OrmLiteConfigUtil
任務定義如下
applicationVariants.all { com.android.build.gradle.api.ApplicationVariant variant ->
def databaseTaskName = "${variant.name.capitalize()}DatabaseCompile"
def buildDir = getBuildDir()
def javaCompileTaskName = "compile" + variant.name.capitalize() + "Java"
def javaTask = project.tasks.findByName("${javaCompileTaskName}")
task "${databaseTaskName}" (type: JavaExec) {
main = 'com.barclaycard.bespoke.android.data.local.DatabaseConfigUtil'
dependencies {
classpath files("${buildDir}/intermediates/classes/${variant.dirName}")
}
}
if (javaTask != null) {
println "Adding post-compile hook to ${variant.name}"
javaTask.finalizedBy "${variant.name.capitalize()}DatabaseCompile"
}
}
並放置在build.gradle的android部分內
我已經嘗試在任務b的依賴項部分添加額外的語句無濟於事。
compile 'com.j256.ormlite:ormlite-android:4.48'
(ClassNotFoundException的任務執行過程中拋出)
classpath 'com.j256.ormlite:ormlite-android:4.48'
和
classpath files('com.j256.ormlite:ormlite-android:4.48')
(不能轉換URL 'com.j256.ormlite:ormlite-安卓:4.48' 到一個文件中。 )
我看不到如何讓JavaExec任務使用遠程回購找到所需的類。
compile 'com.j256.ormlite:ormlite-android:4.48'
用於主項目依賴關係,並正常工作。
感謝指針 - 這種方法奏效。就'+'而言,我只使用了兩個'classpath'語句。它們是累積的,每個'classpath'語句附加到類路徑。 – drew 2014-10-29 11:07:59