1
我正在嘗試使用gradle腳本來上傳一些與firebase一起構建的數據。但我從火力地堡的Java SDK管理得到一個奇怪的錯誤: -在gradle中使用Firebase數據庫
Caused by: java.lang.NoSuchMethodError: org.json.JSONObject.<init>(Ljava/lang/String;)V
at com.google.firebase.auth.FirebaseCredentials$CertCredential.<init>(FirebaseCredentials.java:273)
at com.google.firebase.auth.FirebaseCredentials.fromCertificate(FirebaseCredentials.java:156)
at com.google.firebase.auth.FirebaseCredentials.fromCertificate(FirebaseCredentials.java:130)
at com.google.firebase.auth.FirebaseCredentials$fromCertificate.call(Unknown Source)
at eu.long1.jwnotes.gradleplugins.UploadTask.action(UploadTask.groovy:31)
任務這是這樣的:
class UploadTask extends DefaultTask {
String message = "Huray!"
@TaskAction
def action() {
String a = "private-key"
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredential(FirebaseCredentials.fromCertificate(new ByteArrayInputStream(a.getBytes("UTF-8"))))
.setDatabaseUrl("https://jwnotes.firebaseio.com/")
.build()
FirebaseApp.initializeApp(options)
FirebaseDatabase.getInstance().getReference().child("alfa-gradle").setValue(message)
}
}
我收到的時候我嘗試應用到錯誤運行任務。
UPDATE
這是我的Gradle插件文件:
plugins {
id 'groovy'
id 'maven'
}
group 'eu.long1.jwnotes.gradleplugins'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
compile gradleApi()
compile localGroovy()
}
dependencies {
compile 'com.google.firebase:firebase-admin:5.3.1'
compile 'org.json:json:20160810'
}
sourceCompatibility = 1.8
jar {
into('lib') {
from 'lib'
}
}
我想過,但我仍然得到同樣的錯誤。我的事件試圖建立到插件jar的依賴。 –
那麼,版本20160810中的方法[絕對存在](https://github.com/stleary/JSON-java/blob/20160810/JSONObject.java#L318)。所以這是Gradle沒有拿起正確的依賴關係。如果你放棄對'org.json:json'的顯式依賴? –
最後我使用了REST API。 –