おふとんの中から寝言をつぶやく

ビットコインなどの暗号(仮想)通貨関連の話題を中心に雑多に書きます。

Androidアプリ開発でmultiple dex files define が出たときのエラー解消のための糸口の探し方

f:id:harmonir:20170209025657j:plain

ライブラリAとライブラリBを使おうとして、AとBの両方が、同じライブラリCを使う時に、AとBが指定したライブラリCのバージョンがそれぞれ違うときに複数のDEXファイルが存在してしまうようです。

 

自分のハマった具体的なケースを書いておきます。

 

NEND SDKとFirebaseは内部でplay-servicesを使っていますが、それぞれが依存するplay-servicesのバージョンが違っていました。

  

自分が使いたいライブラリが依存しているライブラリとそのバージョンを調べるには、ターミナルを開いて

 

cd app
../gradlew dependencies

 と書いて出てきたものをみればわかると思います。

 

そこで a.b.c -> x.y.z のようになっている部分があったらそこがバージョンのずれのために別々のDEXファイルが存在する原因になっているので、それを解消してあげましょう。

 

f:id:harmonir:20170209022601j:plain

 ↓

f:id:harmonir:20170209022617j:plain

 

NEND SDKが新しくなってそれだけ新しくしたり、逆にFirebase等で新しいのを使っているのに、NEND SDKの更新が追いついていないときに出るということもありました。

 

ちゃんと理解してれば基本的なことなのかもしれませんが…

(調べ方忘れて二日くらいつぶしたのでした)

 

懐中電灯アプリ、リリースしました!

こんばんは。

とても寒い日が続きますね。体調はいかがですか?

LEDを点けっぱなしにすると、スマホが暖かくなって、ポケットの中も暖かくなるかもしれません。

そういうわけで(!?)初のアプリ、らくらく懐中電灯というAndroidアプリをリリースしました。

play.google.com

 

電池の残量に気をつけつつ…よろしければご利用ください。

zcashのt-addrとz-addrの違い

zcashのt-addrとz-addrの違いを調べようと思って忘れていたので、調べてみました。

zcashのクライアントを使うとわかるのですが、2種類のアドレスが出てきます。

 

t-addrとz-addrです。

 

この2つの違いは一体何なのか。

 

t-addrは、bitcoinのアドレスとほぼ同じものと考えていいようです。

トランザクションの中に現れるアドレスということです。

 

ではz-addrはというと、z-addrを指定して送受信すると、トランザクションの入出力にアドレスが表示されるはずの部分が空白になります。

つまりz-addrで受け取ると、誰が受け取ったかは周りの人からはわからず、匿名で送受信出来るというわけです。

参考→Zchain - Zcash Block Explorer & API (Transaction 10475a6a60bee70c8e95d24dbfce9626cf1633c7377c9111e1b275140e2cfb5d)

 

同じように、z-addrから送信すると、送り元としてのアドレス部分が空白になり、誰が送信したかはわからないということです。

参考→Zchain - Zcash Block Explorer & API (Transaction cdcd80c366dde857ec4423e6f6879739d937fa7349f51bad7abe06b13208f620)

 

おもしろいのは、t-addrからz-addrに送ったり、z-addrからt-addrに送ったりすることも出来るようです。(自分で検証していないので本当にそうかはわかりませんが、トランザクションを見る限り、可能なようです)

 

 

結論になってない結論: どちらのアドレスを使ってもいいですが、z-addrを使うときは、そのアドレスを公開したら…どうなるんでしょうね?(混乱