代码之家  ›  专栏  ›  技术社区  ›  Razvan Cristian Lung

在gradle中使用Firebase数据库

  •  1
  • Razvan Cristian Lung  · 技术社区  · 9 年前

    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)
        }
    }
    

    当我试图申请运行任务时,出现了错误。

    更新

    这是我的插件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'
        }
    }
    
    1 回复  |  直到 9 年前
        1
  •  2
  •   Hiranya Jayathilaka    9 年前

    org.json:json 与Firebase SDK不兼容的库。您需要确保它使用了正确版本的 json library

    使现代化

    以下内容对我有效:

    buildscript {
        repositories {
            maven {
                mavenCentral()
                url uri('repo')
            }
        }
        dependencies {
            classpath group: 'net.hkj', name: 'gradle-task',
                      version: '1.0-SNAPSHOT'
        }
        dependencies {
            classpath 'com.google.firebase:firebase-admin:5.3.1'
        }
    }
    
    task greeting(type: net.hkj.UploadTask) {
    }