Skip to content

Instantly share code, notes, and snippets.

@og24715
Last active March 14, 2018 05:53
Show Gist options
  • Save og24715/0bf353437ddd59ac47ee79ced87a7227 to your computer and use it in GitHub Desktop.
Save og24715/0bf353437ddd59ac47ee79ced87a7227 to your computer and use it in GitHub Desktop.

React Native おぼえがき

Could not find com.android.tools.build:gradle:3.0.1.

buildToolsVersion を 26.x.x へバージョンアップしたら出た。

* What went wrong:
A problem occurred configuring root project 'ypkit'.
> Could not resolve all files for configuration ':classpath'.
   > Could not find com.android.tools.build:gradle:3.0.1.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.1/gradle-3.0.1.pom
         https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.1/gradle-3.0.1.jar
     Required by:
         project :

解法

プロジェクトのbuild.gradlebuildscriptgoogle() を追加。

buildscript {
  repositories {
    ...
    // You need to add the following repository to download the
    // new plugin.
    google()
  }

  dependencies {
    classpath 'com.android.tools.build:gradle:3.0.0-alpha5'
  } 
}

Android Plugin for Gradle 3.0.0 への移行 | Android Studio

Got unknown arguments class:Long

例えば以下のような @RreactMethod があったとして

@ReactMethod
public void crypt(String str, Long key, Promise promise) {
  String scrambledStr = Scramble.crypt(str, key);
  promise.resolve(scrambledStr);
}

js からクソデカ整数を引数に渡したい時に Long で受け取ろうとすると起きる。

解法

@ReactMethodでサポートされている型は以下の通り

java js
Boolean Bool
Integer Number
Double Number
Float Number
String String
Callback function
ReadableMap Object
ReadableArray Array

よって

  • Long は使えない。
  • クソデカ整数は Double で渡される
@ReactMethod
public void crypt(String str, double doubleKey, Promise promise) {
  long key = (long) doubleKey;
  String scrambledStr = Scramble.crypt(str, key);
  promise.resolve(scrambledStr);
}

Native Modules · React Native

<Promise>promise.resolve(<Long> val)出来ない

解法

double で

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment