こんにちは。
先日、新アプリをリリースしたのですが、実はリリースが予定より一週間弱延びてしまいました。
理由は、リリース版だとGoogle Driveにバックアップが出来なかったためです。
バックアップ機能は、ライブラリ化しており、他のアプリと共通です。
他のアプリで問題なく動いているので、GoogleのApi ManagerでGoogle DriveのApiの設定を行うのですが、同じように設定すれば動くはずでした。
そもそも、デバッグ版では動いていました。
しかし!!全く同じように設定しているのにアプリが停止してしまいます。
症状としては、ファイルリストを取得する際に、以下のfileList.getItems()がnullとなってしまいます。
まだアプリを公開していないからか、とか、色々悩みましたが、一旦、頭の中をリセットして考え直してみました。
そしたら、「あれ?まさか難読化のせいか?」と気づきました。
難読化するときには、使用する外部ライブラリのクラス名や関数名まで難読化してしまうと自分のプログラムからクラスや関数が見つけられなくなります。
そのため、「proguard-rules.pro」で名前をキープするクラスなどを設定します。
ただ、今までの経験では、「proguard-rules.pro」で設定が足りない場合は、リリースビルドが通りませんでした。
今回は、リリースビルドも問題なく通っていました。
まさかと思いながらも、ググってみると、「proguard-rules.pro」に設定の追加が必要だという記事がありました。
Driveのライブラリは「com.google.apis:google-api-services-drive:v2-rev170-1.20.0」です。
「proguard-rules.pro」の一部です。「追加」の下を今回追加しました。
これで、ビルドし直し、動かすと・・・あぁ・・・動きました・・・。
詳しく調べる時間がないですが、動いてよかったです。
0 件のコメント:
コメントを投稿