微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

react-native-gogole-fit -GetActivitySamples 不工作

如何解决react-native-gogole-fit -GetActivitySamples 不工作

当我尝试在 react-native-google-fit 中调用 getActivitySamples 时,应用程序抛出以下错误(Logcat - Android Studio。)

E/unkNown:ReactNative: Exception in native call
com.facebook.jni.CppException: Malformed calls from JS: field sizes are different.

[[45,50,33],[5,10,0],[["{\"type\":\"log\",\"level\":\"log\",\"data\":[\"authorized >>>\",\"{\\\"success\\\": true}\"]}",1],[108,2000,1610968521235,false]],706]
    at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
    at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:27)
    at android.os.Looper.loop(Looper.java:228)
    at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:226)
    at java.lang.Thread.run(Thread.java:919)

我已按照此链接 https://developers.google.com/fit/android/get-api-key

中所述配置了 Google Api 密钥

范围添加

][1]

让我知道我是否遗漏了任何步骤。

android/build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
ext {
    buildToolsversion = "30.0.0"
    minSdkVersion = 21
    compileSdkVersion = 28
    targetSdkVersion = 28
    supportLibVersion = "27.0.0"
     }
repositories {
    google()
    jcenter()
   // mavenCentral()
    maven {
        url 'https://maven.fabric.io/public'
    }

 }
dependencies {
    classpath("com.android.tools.build:gradle:4.0.1")
    classpath 'com.google.gms:google-services:4.2.0'// Google Services plugin
    classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0'
    classpath 'io.fabric.tools:gradle:1.28.1'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}

allprojects {
repositories {
    google()
    mavenLocal()
    jcenter()
    maven {
        // All of React Native (JS,Obj-C sources,Android binaries) is installed from npm
        url("$rootDir/../node_modules/react-native/android")
    }
    maven {
        // Android JSC is installed from npm
        url("$rootDir/../node_modules/jsc-android/dist")
    } 
  //  maven { url 'https://maven.google.com' }
    maven { url "https://jitpack.io" }

   }
  subprojects {
afterEvaluate {project ->
    if (project.hasProperty("android")) {
        android {
            compileSdkVersion 28     // have to match with build.gradle and app/build.gradle ones
            buildToolsversion '28.0.3'  // have to match with build.gradle and app/build.gradle ones
            variantFilter { variant ->
                def names = variant.flavors*.name
                // To check for a certain build type,use variant.buildType.name == "<buildType>"
                if (names.contains("reactNative51") || names.contains("reactNative55") || names.contains("reactNative56")) {
                    // Gradle ignores any variants that satisfy the conditions above.
                    setIgnore(true)
                }
            }
        }
    }
}
 }
 }

app/build.gradle

        apply plugin: "com.android.application"
// apply plugin: "io.fabric"
import com.android.build.OutputFile

project.ext.react = [
    enableHermes: false,// clean and rebuild if changing
]

apply from: "../../node_modules/react-native/react.gradle"
def enableSeparateBuildPercpuArchitecture = false

def enableProguardInReleaseBuilds = false

def jscFlavor = 'org.webkit:android-jsc:+'

def enableHermes = project.ext.react.get("enableHermes",false);

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    lintOptions {
        checkReleaseBuilds false
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    packagingOptions {
            pickFirst 'lib/x86/libc++_shared.so'
            pickFirst 'lib/x86_64/libc++_shared.so'
            pickFirst 'lib/armeabi-v7a/libc++_shared.so'
            pickFirst 'lib/arm64-v8a/libc++_shared.so'
        }
    defaultConfig {
        applicationId "packageName"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        missingDimensionStrategy 'react-native-camera','general'
        multiDexEnabled true
        versionCode 29
        versionName "6.0"
        resValue "string","packageName","packageName"
        

    }
    dexOptions {
    javaMaxHeapSize "4g"
    }
    splits {
        abi {
            reset()
            enable enableSeparateBuildPercpuArchitecture
            universalApk false  // If true,also generate a universal APK
            include "armeabi-v7a","x86","arm64-v8a","x86_64"
        }
    }
    signingConfigs {
         signingConfigs {
            debug {
               
            }
            release {
                
                  
            }
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
        release {
            signingConfig signingConfigs.release
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"),"proguard-rules.pro"
            minifyEnabled true

            
        }
    }

    // applicationVariants are e.g. debug,release
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            // For each separate APK per architecture,set a unique version code as described here:
            // https://developer.android.com/studio/build/configure-apk-splits.html
            def versionCodes = ["armeabi-v7a": 1,"x86": 2,"arm64-v8a": 3,"x86_64": 4]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null) {  // null for the universal-debug,universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
            }

        }
    }
}


dependencies {
    implementation project(':react-native-config')
    implementation project(':react-native-calendar-events')
    implementation project(':react-native-google-fit')
    implementation project("::@ovalmoney_react-native-fitness")
    implementation filetree(dir: "libs",include: ["*.jar"])
    //noinspection GradleDynamicVersion
    implementation "com.facebook.react:react-native:+"  // From node_modules
    implementation project(':react-native-config')
    implementation 'androidx.multidex:multidex:2.0.1'

    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
    // implementation 'com.android.support:support-annotations:28.0.0'
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:support-v4:28.0.0'    // implementation 'androidx.appcompat:appcompat:1.0.2'
    // implementation 'androidx.annotation:annotation:1.0.2'
      implementation 'me.leolin:ShortcutBadger:1.1.21@aar'
      implementation 'com.google.firebase:firebase-analytics:17.5.0'
      implementation 'com.google.firebase:firebase-crashlytics:17.2.2'
      implementation "com.google.android.gms:play-services-base:16.1.0"
      implementation 'com.google.firebase:firebase-core:16.0.9'
      implementation 'com.google.firebase:firebase-messaging:20.3.0'
      implementation "com.google.android.gms:play-services-gcm:12.+"
      implementation 'com.facebook.fresco:fresco:2.0.0'
      implementation 'com.facebook.fresco:animated-gif:2.0.0'
      implementation project(':react-native-splash-screen')
      implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.10'
      debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
      exclude group:'com.facebook.fbjni'
    }
 implementation 'com.google.android.gms:play-services-fitness:20.0.0'
        implementation 'com.google.android.gms:play-services-auth:19.0.0'
    debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
        exclude group:'com.facebook.flipper'
        exclude group:'com.squareup.okhttp3',module:'okhttp'
    }

    debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
        exclude group:'com.facebook.flipper'
    }

    if (enableHermes) {
        def hermesPath = "../../node_modules/hermes-engine/android/";
        debugImplementation files(hermesPath + "hermes-debug.aar")
        releaseImplementation files(hermesPath + "hermes-release.aar")
    } else {
        implementation jscFlavor
    }
}

// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: copy) {
    from configurations.compile
    into 'libs'
}

apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'

apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"




 // Google Play services Gradle plugin
com.google.gms.googleservices.GoogleServicesPlugin.config.disabLeversionCheck = true

     preBuild.doFirst {
  ant.replaceregexp(
        match: 'import android.support.annotation.',replace: 'import androidx.annotation.',flags: 'g',byline: true
    )   {
        fileset(
            dir: '../../node_modules/',includes: '**/*.java'
        )
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。