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.gradleの buildscript に google() を追加。
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
例えば以下のような @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);
}double で