2015年4月9日木曜日

[Titanium Mobile]Android モジュールを作成 3.5.1GA

・環境
Titanium Studio, build: 3.4.1.201410281727
Titanium SDK 3.5.1GA


手順は簡単で
・Android NDKをTitanium Studioにリンクする
・Titanium StudioにJDKのインストールする
の2つしか無い、が予想外のところでエラーが発生するのでかなり時間がかかった

  • Android NDKをTitanium Studioにリンクする
    現在Android NDKは10aまであるがTitanium Stadioではr8bが安定して動作するようだ
    Titanium Devloperのマニュアルでは10を使っているが罠かもしれない

    Android NDKのダウンロードリンク

    ダウンロード後適当なフォルダに展開し
    Titanium Studio -> Preferences -> Studio -> Platforms -> Android -> Android NDK Home
    をAndroid NDKに設定する

    プロジェクトのBuild.propertiesに
    android.ndk=/Users/[User Name]/Documents/AndroidNDK/android-ndk-r8b
    をを追加する
  • Titanium StudioにJDKのインストールする
    Help -> Check New Software
    から

    Eclipse Kepler release
    を設定し

    Programming Languages ->Java Developer Tools
    をダウンロードする
    この後再起動を求められるので再起動する
  • ビルド方法
    Project Exploerから
    android -> build.xml
    を右クリック
    Run - >Ant
    を実行

    プロジェクト名を右クリック -> Publish -> Package
    でビルドできる

    Titaniumプロジェクトにモジュールを追加した状態で
    モジュールを更新後AntとPublishをしてもTitaniumプロジェクトが反映されない場合は、tiapp.xmlからモジュールを外すか、modules -> androidフォルダ配下のモジュールを削除すると更新される場合がある。
エラー処理

BUILD FAILED
/Users/[User name]/Library/Application Support/Titanium/mobilesdk/osx/3.5.1.GA/module/android/build.xml:354: The following error occurred while executing this line:
/Users/[User name]/Library/Application Support/Titanium/mobilesdk/osx/3.5.1.GA/module/android/build.xml:356: There is discrepancy between the architectures specified in manifest and compiled binary.

決定的な解決方法が見つからなかったがTitanium Studioを再起動すると治ることもある

BUILD FAILED
/Users/[User name]/Library/Application Support/Titanium/mobilesdk/osx/3.5.1.GA/module/android/build.xml:461:
/Users/[User name]/Documents/Titanium_Studio_Workspace/modulesample/android/build/docs does not exist.

プロジェクトの
android -> Build
にdocsというフォルダを新規に作成する

java.lang.IllegalArgumentException: already added: Lcom/sample/library/libraryClass$1;
ライブラリにあるクラス名が競合している。

2015年4月2日木曜日

[Titanium Mobile]MACでTitanium Android Moduleを作成する

Titanium Studio, build: 3.1.3 の記事なので最新版では動作しないかもしれません

新しい記事はこちら
[Titanium Mobile] Android モジュールを作成 3.5.1GA
https://www.blogger.com/blogger.g?blogID=2518627692473629903#allposts

・モジュールの作成
File>New>Mobile Module Project

項目を入力

hogeProxy.javaなどを編集

・コンパイル
build.properties
android.ndk=/Users/[user name]/android-ndk-r8
ndkのパスを追加

android NDKが入ってない時は追加する
http://developer.android.com/intl/ja/tools/sdk/ndk/index.html

Android NDKを触ってみる
http://qiita.com/alingogo/items/203477c9da373ab7eacb

build.xmlを右クリック
Run>Ant
を実行

プロジェクト名を右クリック>Publish>package

Output LocationがTitaniumSDKの場合
/Users/[user name]/Library/Application Support/Titanium/modules
に配置される。

Mobile Projectは開いているプロジェクトにModuleを直接配置し、
対象のTiApp.xmlに自動で追加される

・モジュールのインポート
TiApp.xml>module>"+"ボタンで追加することができる。


※モジュールをTitaniumプロジェクトに更新するときは
TiApp.xmlから更新するプロジェクトを"-"ではずさないと更新されないらしい

2015年3月29日日曜日

[AndroidSDK]Error:Execution failed for task ':app:dexDebug'.

Android StudioでEclipseで作られたAndroidプロジェクトをインポートしたところ以下のエラーが発生した。

Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: 
Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/bin/java''
finished with non-zero exit value 2

このログにある
Execution failed for task ':app:dexDebug'.
というエラーの原因は複数ある

EclipseからAndroid Studioのせかえ時のgradle対応でハマったエラーまとめ
http://qiita.com/konifar/items/dbbbfd94ad103239c627

Android Studio: Gradle - build fails — Execution failed for task ':dexDebug'
http://stackoverflow.com/questions/18021901/android-studio-gradle-build-fails-execution-failed-for-task-dexdebug

今回こちらで発生したエラーは
試験用と本番用2つの*.jarのライブラリに同名のクラスがあったため発生した。
重複クラスがあるライブラリのうち1つをgradleファイルから外して解決した

このエラーが発生した時はライブラリを見なおしてみると良い

例
dependencies {
//    compile files('libs/samplelib_testing.jar')
compile files('libs/samplelib.jar')
}

2015年3月28日土曜日

[AndroidSDK]ListViewで区切り線を非表示にする

ListViewに
android:divider="@null"
を追加するだけ
android:divider="#ffffff"
で区切り線の色を変えることができる。

区切り線の高さを変更するときは
android:dividerHeight="1dp"


を追加する

2015年3月17日火曜日

[AndroidSDK]用意した配列を読み込む

res -> values に arrays.xmlを作成し 配列を作成する

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="sample">
        <item>value1</item>
        <item>value2</item>
        <item>value3</item>
    </string-array>
</resources>

呼び出すときは

String[] stringArray = (String[]) getResources().getStringArray(R.array.sample);

2015年3月8日日曜日

[AndroidSDK]Android Studioでコード補完が無効になった

Android Studio1.1でコード補完(macではControl+Space)が反応しなくなったことがある。

2つ以上のプロジェクトを開くとコード補完がおかしくなる、っぽい
コーディングするときは1つのプロジェクトにしよう。

バージョンアップで修正されることを祈ろう

2015年2月28日土曜日

[Unity]uGUIのButtonを押したあとハイライトが残ってしまう問題

Button(Script)のNavigarion -> Automatic -> Noneにする。


このNavigarionという機能はボタンなどのUIを使用した時にどういった動作するか決めるものらしい。