ブログ移転
に移転しましたm(_ _)m
アプリ紹介 「Wild Kids 〜ミルクしか信じない〜」
6ヶ月もブログ更新していなかったので久々に。
実は現在cocos2d-xを使ったゲームを開発しており、
このWild Kids以来になります。
こちらのアプリ、エンジニアに@very_tiredさんという
フリーランスの凄腕デベロッパーさんにお手伝いしてもらったものになります。
今回も一緒に制作しており、この夏くらいにリリースできたらなと考えてます(´・ω・`)
ちょっとした宣伝になっちゃいましたが、このWild Kidsもお子様も楽しめるような
ライトなゲームになってますので是非Playしてみてください♩
Google Play Services SDKを使った際のProGuard設定
超絶久々に備忘録として...。
先日Google Play Servicesを導入して、いざapkに吐き出そうとした時
見たこともないエラーがズラズラと。
ProGuardを使った場合なんですが。その時解決した方法をば。
proguard-project.txtに以下を記述
-keep class com.google.android.gms.** { *; } -dontwarn com.google.android.gms.** # google play services libディレクトリにあるproguard.txtをまんまもってくる -keep class * extends java.util.ListResourceBundle { protected Object[][] getContents(); } # Keep SafeParcelable value, needed for reflection. This is required to support backwards # compatibility of some classes. -keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable { public static final *** NULL; } # Keep the names of classes/members we need for client functionality. -keepnames @com.google.android.gms.common.annotation.KeepName class * -keepclassmembernames class * { @com.google.android.gms.common.annotation.KeepName *; } # Needed for Parcelable/SafeParcelable Creators to not get stripped -keepnames class * implements android.os.Parcelable { public static final ** CREATOR; }
centOSにTomcatインストール
非常に古くさいタイトルですが、一応いつでも確認出来るように
メモメモ...。
VirtualBoxのCentOSにMacからsshで接続するまで
VirtualBoxを使って仮想サーバーをたてる
↓
Macからssh接続を行う。
までを簡単に。
VirtualBoxは最初にインストールした時点でNATが適用となっているため、
今回はMacからVirtualBoxに繋ぐための設定を行います。
※なおこちらではCentOSを使ってますが、
事前にVirtualBoxにインストール済みということで
■VirtualBoxのメニュー->環境設定->上部タブのネットワークを選択->
ホストオンリーネットワークを選択し、右の「+」を押してvboxnet0を追加
■作成した仮想マシン上で右クリック->設定->上部タブのネットワークを選択->
アダプター1を選び、割り当てを"ホストオンリーアダプター"に
(名前は自動でvboxnet0に)
■ゲストCentOSにて、eth0の設定を変更してやる
$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0 IPADDR=192.168.56.10 //CentOS側は192.168.56.xx NETMASK=255.255.255.0 GATEWAY=192.168.56.1 //ホストOSのデフォルトのIPアドレス
■設定をかえたらMacのターミナルから
$ ssh root@192.168.56.10
Mac->VirtualBoxへの接続はこれでOK
なおVirtualBoxのCentOS上でネットワークを使うなら
アダプター2で"ネットワークを有効化"にチェックをいれ、NATを選択。
外部ライブラリの読み込み設定方法(Google Maps APIを例に)
久々にブログのほう書きます。
Eclipseでは散々やってきたけど、IDEAのほうでいざやろうとしたら
異常に手間取って危うく諦めるところだったので、忘れないように
メモがてら書き書き...
まずIDEAを起動したら、「Create New Project」で
プロジェクト本体を作成します。
注意するのがここで指定するSDKの部分は「Google APIs」でないといけません。
いつも通りAndroid 4.x Platformとかしたら動かないですよー。
- Support Library の追加
起動しましたら、今度は「Project Structure」を開き左項目から「Libraries」を選択、上の「+」を押してnew Project LibraryでJavaを選びます。
あとはandroid-support-v4.jarまでのパスをたどってやって、
決定をするとどのモジュールにそれを追加するか聞かれる画面がでるので
そのまま先ほどの本体となるモジュールを選択します。
※モジュールは自動で表示されるので追加したいとこを選択してやります
- Google Play Service APIの参照
次に細かい詳細ははしょりますが、Google Maps Android API v2は
Google Play Service APIの一つとして配布されているため、
このライブラリを参照してやる必要があります。
同じく「Project Structure」左側項目から「Module」を選択。
先ほどと同じく「+」でImport Moduleを選択し、
google-play-services_libがおいてあるパスまでを指定してやります。
これでインポート完了!
ちゃんとインポートできていますね
最後に右項目「Libraries」にうつって、google-play-servicesが
追加されているので、右クリック->Add to Modules...で
本体のモジュールに追加してやります。
そして最後仕上げは「Module」から本体モジュールを選択し、
右側タブ「Dependencies」を選択、google-play-services_libを追加してやります。
下の「+」からModule Dependencyを選択し上記を選んでやればOK。
では自身で取得したMaps APIキーを追記してやってプロジェクトを作成します。
main.xmlは適当に以下でやってみました。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:map="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/button1" android:layout_weight="1"> </Button> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/button2" android:layout_weight="1"> </Button> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/button3" android:layout_weight="1"> </Button> </LinearLayout> <fragment android:layout_width="match_parent" android:layout_height="match_parent" android:name="com.google.android.gms.maps.SupportMapFragment"/> </LinearLayout>
Activityのほうは下記で。
import android.os.Bundle; import android.support.v4.app.FragmentActivity; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.SupportMapFragment; public class MyActivity extends FragmentActivity { /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
ちゃんと表示された!
※こちらも忘れそうなので併せてメモ。
Genymotionで実行する際、Maps API等使う時に
失敗するので、Project Structureで各モジュールで
libのパスを空にしてやる。一時的に...。
でないと
INSTALL_FAILED_CPU_ABI_INCOMPATIBLE on device using intellij
こんなのが出る...。
詳しくは、ココ