Blogブログ

Android製作!EclipseでProGuardを使って難読化して.apkファイル作成

2013/06/27

Androidの作成が終わりいざGooglePlay等に公開する場合、

模造品を作られない為にも最低限難読化をしておきたい所です。

今回はそんな人の為の難読化のやり方をご紹介します。

EcripseについてくるProGuardを使います。

ルート以下にある「project.properties」ファイルを開き

#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

上記のようにコメントをはずします。

公開したいアプリのルートフォルダを右クリックして(私のEcripseは日本語パッチをあてています)、

「Androidツール」→「署名アプリケーション・パッケージのエクスポート」を選択します。

そうすると色々聞かれるので、入力していきます。
サンプルをあげておきますので、参考にしてください。間違ってたらごめんなさい

プロジェクト・・・今回のプロジェクト名(多分任意)

次へをクリック

「Create new keystore」を選択
ロケーション・・・参照を押してデスクトップを選び、.apkの前につく任意の名前ファイルという所に入力
※デスクトップじゃないとパーミッションの関係で.apkが作成できない場合があると思います。
パスワード・・・・任意
確認・・・・・・・上記パスワードと同じものを入力

次へをクリック

エイリアス・・・任意の名前
パスワード・・・任意(先程のパスワードと同じでも違くてもどちらでもOK)
確認・・・・・・上記パスワードと同じ
Validity(years)・・・有効年数。数字で25年以上を入力。
First and Last Name・・・名前を入力
組織単位・・・任意の組織単位を入力
組織・・・・・任意の組織を入力
City or Locality・・・都市名や地域名(例:Tokyo)
State or Province・・・州名や地方名(例:Shinjuku)
Country Code・・・jp か 81 のどちらかを入力(日本の場合です)

ざっとこんな感じで入力すればいいと思います。

もし、ProGuardでapkファイルを生成する時に呼び出しファイルが見つかりません的なエラーが出たら、

libsフォルダにそのファイルが入っていると仮定して、
ドキュメントルート以下にある、 proguard-project.txtを開き最後の行に
-libraryjars \libs\○○○.jar

というような感じで該当のファイルを追記してあげれば無事作成されます。

追記——-
これでエラーが無く.apkファイルが吐き出されるのですが、

実機に吐き出された.apkファイルをインストールすると、強制終了されました。。。

原因はビルドの時にまたしてもlibsフォルダのファイルを呼び出していませんでした。

どんだけめんどくさいんですかね・・・。

対策としては、上部メニュー「プロジェクト」→「プロパティ」を選択し、

左側メニューの「Javaのビルド・パス」を選択。

上部タブの「順次およびエクスポート」を選択。(英語版の方は一番右側のタブです。)

その中でチェック入ってないのに全てチェック入れてOKを押せばいけます。

たぶん、「Android Private Libraries」ってやつにlibsフォルダが入っているので、これが大事だと思われます。

これらはプロジェクト毎に全てやらないとエラーがでますので、お気をつけ下さい。

ADTを22.0.0にアップデートすると起きる問題みたいですね。

アップデートしなければよかったです。

他社より断然お得で使いやすい
”アクトのWEB制作”
ACTホームページ相談窓口 / 
システム開発相談窓口