tag:blogger.com,1999:blog-25186276924736299032024-02-19T15:50:37.040+09:00markfour memoiOS、Android、Mac、Unityに関するメモ帳Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.comBlogger126125tag:blogger.com,1999:blog-2518627692473629903.post-89249590112911368602015-07-15T23:07:00.003+09:002015-07-15T23:08:26.635+09:00[Cocos2d-x]アクション終了時に処理を実行する<p>Cocos2d-x v3.6</p>
<pre class="prettyprint"><code class="language-cpp hljs "><span class="hljs-keyword">auto</span> mySprite = Sprite::create();
<span class="hljs-keyword">auto</span> action = FadeOut::create(<span class="hljs-number">0.1</span>);
mySprite->runAction(action);
<span class="hljs-comment">// ラムダ式でコールバックを設定する</span>
<span class="hljs-keyword">auto</span> callback = CallFuncN::create([](Ref *sender){
<span class="hljs-comment">//コールバック処理をここに書く</span>
Node *node = (Node *)sender;
node->removeFromParent();
});
<span class="hljs-comment">// アクションとコールバックをシーケンスに設定する</span>
<span class="hljs-keyword">auto</span> seq = Sequence::create(action, callback, NULL);
mySprite->runAction(seq);</code></pre>Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-20789041859629812102015-07-14T22:58:00.000+09:002015-07-15T23:04:09.310+09:00[Admob]テストIDについて<p>Admobは開発時ににはテスト広告が使用が推奨されている、 <br>
このテスト広告を使用するためにはtestDvicesの配列にD端末IDを追加すれば良い。 <br>
DeviecIDはAdmob固有のものでiPhone UIDなどとは別物である。 <br>
端末がiOSシュミレーター、Androidエミュレターの場合はGAD_SIMULATOR_IDを使用する。</p>
<p>端末IDをを知るには[GADRequest request]時に出力されるログに表示される <br>
<strong> To get test ads on this device, call: request.testDevices = @[</strong> <br>
<strong>@”ここに端末IDが表示される” ];</strong></p>
<p>このためテスト端末を利用するときは<strong>はじめの1回は本番環境として起動</strong>する必要がある。</p>
<p>ちょっと考えればあたりまえだが、 <br>
<a href="https://developers.google.com/mobile-ads-sdk/docs/admob/ios/targeting?hl=ja#test_ads">https://developers.google.com/mobile-ads-sdk/docs/admob/ios/targeting?hl=ja#test_ads</a></p>
<blockquote>
<p>開発段階では、表示回数が不正にカウントされないよう、テスト広告を使用することをおすすめします。</p>
</blockquote>
<p>と記載されていたので、はじめの1回が不正になるのじゃないかと考えていたため、 <br>
本番環境での起動に躊躇してしまった。 <br>
AdmobさんはGoogleIDを結構警告(とBAN)すると聞いたので</p>Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-74535279950242787442015-07-13T23:14:00.000+09:002015-07-17T16:58:11.142+09:00[Cocos2d-x]Actionを連続させて行う<p>spriteを順番にactionさせる</p>
<pre class="prettyprint"><code class="language-cpp hljs "><span class="hljs-keyword">auto</span> downAction = MoveBy::create(<span class="hljs-number">0.5</span>, Point(<span class="hljs-number">0</span>, <span class="hljs-number">30</span>));
<span class="hljs-keyword">auto</span> upActiopn = MoveBy::create(<span class="hljs-number">0.5</span>, Point(<span class="hljs-number">0</span>, -<span class="hljs-number">30</span>));
<span class="hljs-comment">//Spawnは2つのアクションを制御することができる、3つ以上はSequeneにすること</span>
<span class="hljs-keyword">auto</span> upDownAction = Spawn::create(downAction, upActiopn, NULL);
sprite->runAction(upDownAction);</code></pre>
<p>spriteを順番にactionさせ、ループさせる</p>
<pre class="prettyprint"><code class="language-cpp hljs "><span class="hljs-keyword">auto</span> downAction = MoveBy::create(<span class="hljs-number">0.5</span>, Point(<span class="hljs-number">0</span>, <span class="hljs-number">30</span>));
<span class="hljs-keyword">auto</span> upActiopn = MoveBy::create(<span class="hljs-number">0.5</span>, Point(<span class="hljs-number">0</span>, -<span class="hljs-number">30</span>));
<span class="hljs-comment">//Sequenceは複数のアクションを順番に行うことができる</span>
<span class="hljs-keyword">auto</span> sequence = Sequence::create(downAction, upActiopn, NULL);
<span class="hljs-keyword">auto</span> repeatForever = RepeatForever::create(sequence);
sprite->runAction(repeatForever);</code></pre>Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-88314286188349914902015-06-08T23:34:00.001+09:002015-06-08T23:34:15.552+09:00[Cocos2d-x]よく使うコード2Coccos2d-x v3.6 c++ 自分用メモ<br />
<script src="http://gist-it.appspot.com/github/markfour/Blog/blob/master/cocos2d-cpp-basic02.js"></script>Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-23128397809047395182015-05-29T18:00:00.000+09:002015-06-01T09:52:40.733+09:00[Cocos2d-x]よく使うコードCoccos2d-x v3.6 c++ 自分用メモ<br />
<script src="http://gist-it.appspot.com/github/markfour/Blog/blob/master/cocos2d-cpp-basic.js"></script>Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-29482060103191700672015-05-27T20:29:00.000+09:002015-06-05T10:12:36.069+09:00[Cocos2d]Cocos2dをちょっとやってみた感想開発環境はmac mini 2014、Core i5 2.5G、メモリー 8G<br />
<ul>
<li>Cocos2d-x 3.6<br />C++またはLua<br />iOS、Android、Windows Phone 8に書き出し可能<br />LuaならCococsが用意したEclipseベースのCode IDEが使用できる</li>
</ul>
<ul>
<li>Cocos2d-JS 3.6.1<br />Javascript<br />
iOS、Android、Web(WebGL)に書き出し可能<br />
Cococsが用意したEclipseベースのCode IDEが使用できる</li>
<li>Code IDE v1.2<br />Lua、JavaScriptでCocos2dを使用するときに使えるIDE基本的な機能は入っている</li>
<li>Cocos v2.2<br />UIエディターやアニメーションエディター、プラットフォームのダウンロード機能などが含まれたCococsの補助ツール<br />今のところイマイチ</li>
</ul>
<br />
複数のデバイスサイズに対応させるにはややコーディングが必要<br />
<br />
Cocos2dには種類が大量にあるが、プラットフォームが多くリリースされた理由はこちらのサイトを見れば分かる<br />
<br />
miyahiraブログ - cocos2dの歴史をまとめてみた。<br />
<a href="http://blog.miyahira.me/2014/11/cocos2dcocos2d-x-cocos2d-iphone-" target="_blank">http://blog.miyahira.me/2014/11/cocos2dcocos2d-x-cocos2d-iphone-</a><br />
cocos2d.html<br />
<br />
<b>Cocos2d-Xを触ってみた感想</b><br />
<br />
・初回ビルドに時間がかかる(Xcode C++ シミュレーターだと2回目以降は5~15秒程度)<br />
・Xcodeが使える<br />
・iOS+Xcodeでシミュレータの立ち上げに失敗することがある(これはNative Xcode開発でも同じか?)<br />
・サンプルが多い特にLuaだと中華系サイトに大量にある<br />
<br />
Cocos2d-x v3 C++ Tutorial Series<br />
<a href="https://www.youtube.com/playlist?list=PLRtjMdoYXLf4od_bOKN3WjAPr7snPXzoe" target="_blank">https://www.youtube.com/playlist?list=PLRtjMdoYXLf4od_bOKN3WjAPr7snPXzoe</a><br />
動画数53本とかなり多いがこれを全部みれば基本が分かる<br />
youtubeの説明のリンクからGithubのコードが見れる<br />
<br />
<b>Cocos2d-JSを触ってみた感想</b><br />
<br />
・JavaScriptなので習得が用意<br />
・Webだとファイルを保存するだけで実行可能で、トライ&エラー手法で短期間に色々試せる<br />
・iOS、Androidへのビルドは非常に長い、初回の空プロジェクトでも3~5分はかかる<br />
・v2.xとv3.xだと挙動や呼び出しが違うので注意する必要がある<br />
・v3.xのサンプルや情報が少ない<br />
・公式のリファレンスやガイドだけでは作りにくい<br />
<br />
Cocos2dの別プラットフォームをやっている人ならすんなり入れると思うが、<br />
いきなりやるにはちょっと情報が少なすぎる<br />
<br />
参考にしたサイト<br />
<br />
公式リファレンス<br />
<a href="http://www.cocos2d-x.org/reference/html5-js/V3.6/index.html" target="_blank">http://www.cocos2d-x.org/reference/html5-js/V3.6/index.html</a><br />
<br />
公式サンプル<br />
<a href="http://cocos2d-x.org/js-tests/" target="_blank">http://cocos2d-x.org/js-tests/</a><br />
v2.xのサンプルが混ざっているので注意<br />
<br />
Cocos2d-js(v3系)のチュートリアルまとめ<br />
<a href="http://qiita.com/hp0me/items/55b784e9c616c52cab43" target="_blank">http://qiita.com/hp0me/items/55b784e9c616c52cab43</a><br />
<br />
JavaScript の超便利なメソッド bind で this を制御する<br />
<a href="http://foreignkey.jp/archives/763" target="_blank">http://foreignkey.jp/archives/763</a><br />
.bind(this)について<br />
JavaScriptのthisはObjective-CやJavaとは違った動きをすることがあるので<br />
thisの扱いは覚えておいた方がいいMarkfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-72624702204126396392015-04-20T20:00:00.000+09:002015-06-25T18:13:38.429+09:00[iOS]iTunes Store operation failed "You are not authorized to use this service"App Storeへアプリを販売可能にするため、XcodeからOganaizerを使用してアプリをアップロードしたところ以下のエラーが発生した。<br />
<br />
<span style="color: red;">iTunes Store operation failed</span><br />
You are not authorized to use this service<br />
(あなたはこのサービスを使用する許可が無い)<br />
<br />
stackoverflowによると<br />
<br />
<a href="http://stackoverflow.com/questions/28248496/you-are-not-authorised-to-use-this-service-itunes-app-upload-error" target="_blank">http://stackoverflow.com/questions/28248496/you-are-not-authorised-to-use-this-service-itunes-app-upload-error</a><br />
<span style="background-color: white; color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 19.5px;"><br /></span><span style="background-color: white; color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 19.5px;"><b>解決法:XcodeのiOS Developerのアカウントをリログする</b></span><br />
<span style="background-color: white; color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 19.5px;"><br /></span>
<a href="http://stackoverflow.com/questions/28553827/itunes-store-operation-failed-you-are-not-authoried-to-use-this-service" target="_blank">http://stackoverflow.com/questions/28553827/itunes-store-operation-failed-you-are-not-authoried-to-use-this-service</a><br />
<br />
<b>Appleのサービスがで問題が発生しているのでアップロードできない</b><br />
<br />
<br />
2つの回答があったが、どちらにも該当しなかった。<br />
解決方法は「<b>iTunes ConnectとiOS Developerのアカウントは同じアカウントを使用する</b>」だった。<br />
<br />
というのもiOS3.xのころはiTunes ConnectとiOS Developerは別々のアカウントを作る必要があったが、iOS8(Xcode6)ぐらいから別々のアカウントではアプリのアップロードができなくなったっぽい。<br />
<br />
Application Loader 2.9.1を使用すれば別々のアカウントでもできるが<br />
Application Loader 2.9.1の使用は推奨されてないので別の問題が発生する可能性がある<br />
<a href="https://itunesconnect.apple.com/apploader/ApplicationLoader_2.9.1.dmg" target="_blank">https://itunesconnect.apple.com/apploader/ApplicationLoader_2.9.1.dmg</a>Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-73366919197970026472015-04-09T21:00:00.000+09:002015-04-28T10:54:55.201+09:00[Titanium Mobile]Android モジュールを作成 3.5.1GA<div>
・環境</div>
<div>
Titanium Studio, build: 3.4.1.201410281727</div>
<div>
</div>
<div>
Titanium SDK 3.5.1GA</div>
<div>
<br /></div>
<div>
<div>
公式のAndroidモジュールの作成方法</div>
<div>
<a href="https://docs.appcelerator.com/platform/latest/#!/guide/Android_Module_Project-section-43289002_AndroidModuleProject-AddaThird-PartyJAR" target="_blank">https://docs.appcelerator.com/platform/latest/#!/guide/Android_Module_Project-section-43289002_AndroidModuleProject-AddaThird-PartyJAR</a></div>
</div>
<div>
<br /></div>
<div>
<div>
手順は簡単で</div>
<div>
・Android NDKをTitanium Studioにリンクする</div>
<div>
・Titanium StudioにJDKのインストールする</div>
<div>
の2つしか無い、が予想外のところでエラーが発生するのでかなり時間がかかった</div>
</div>
<div>
<br /></div>
<div>
<ul>
<li>Android NDKをTitanium Studioにリンクする<br /><div>
現在Android NDKは10aまであるがTitanium Stadioではr8bが安定して動作するようだ</div>
<div>
Titanium Devloperのマニュアルでは10を使っているが罠かもしれない</div>
<div>
<br /></div>
<div>
Android NDKのダウンロードリンク</div>
<div>
<a href="https://dl.google.com/android/ndk/android-ndk-r8b-darwin-x86.tar.bz2">https://dl.google.com/android/ndk/android-ndk-r8b-darwin-x86.tar.bz2</a></div>
<div>
<br /></div>
<div>
ダウンロード後適当なフォルダに展開し</div>
<div>
<span style="background-color: #eeeeee;">Titanium Studio -> Preferences -> Studio -> Platforms -> Android -> Android NDK Home</span></div>
<div>
をAndroid NDKに設定する</div>
<div>
<br /></div>
<div>
プロジェクトのBuild.propertiesに</div>
<div>
android.ndk=/Users/[User Name]/Documents/AndroidNDK/android-ndk-r8b</div>
<div>
をを追加する</div>
</li>
<li><div>
Titanium StudioにJDKのインストールする<br />
<div>
<span style="background-color: #cccccc;">Help -> Check New Software</span></div>
<div>
から</div>
<div>
<br /></div>
<div>
Eclipse Kepler release</div>
<div>
<a href="http://download.eclipse.org/releases/kepler/">http://download.eclipse.org/releases/kepler/</a></div>
<div>
を設定し</div>
<div>
<br /></div>
<div>
Programming Languages ->Java Developer Tools</div>
<div>
をダウンロードする</div>
<div>
この後再起動を求められるので再起動する</div>
</div>
</li>
<li>ビルド方法<br /><div>
Project Exploerから</div>
<div>
android -> build.xml</div>
<div>
を右クリック</div>
<div>
Run - >Ant</div>
<div>
を実行<br />
<br />
<div>
<div>
プロジェクト名を右クリック -> Publish -> Package</div>
<div>
でビルドできる<br /><br />Titaniumプロジェクトにモジュールを追加した状態で<br />モジュールを更新後AntとPublishをしてもTitaniumプロジェクトが反映されない場合は、tiapp.xmlからモジュールを外すか、modules -> androidフォルダ配下のモジュールを削除すると更新される場合がある。</div>
</div>
</div>
</li>
</ul>
<div>
<span style="color: red;">エラー処理</span></div>
</div>
<div>
<br /></div>
<div>
<div>
<span style="color: #ff2600;">BUILD FAILED</span></div>
<div>
<span style="color: #ff2600;">/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:</span></div>
<div>
<span style="color: #ff2600;">/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.</span></div>
<div>
<br /></div>
<div>
決定的な解決方法が見つからなかったがTitanium Studioを再起動すると治ることもある</div>
</div>
<div>
<br /></div>
<div>
<div>
<span style="color: #ff2600;">BUILD FAILED</span></div>
<div>
<span style="color: #ff2600;">/Users/[User name]/Library/Application Support/Titanium/mobilesdk/osx/3.5.1.GA/module/android/build.xml:461:</span></div>
<div>
<span style="color: #ff2600;">/Users/[User name]/Documents/Titanium_Studio_Workspace/modulesample/android/build/docs does not exist.</span></div>
<div>
<span style="color: #ff2600;"><br /></span></div>
<div>
プロジェクトの</div>
<div>
android -> Build</div>
<div>
にdocsというフォルダを新規に作成する<br />
<br />
<span style="color: red;">java.lang.IllegalArgumentException: already added: Lcom/sample/library/libraryClass$1;</span><br />
ライブラリにあるクラス名が競合している。</div>
<div>
</div>
</div>
Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-16756207760582628012015-04-02T12:26:00.000+09:002015-04-10T10:23:39.711+09:00[Titanium Mobile]MACでTitanium Android Moduleを作成する<span style="color: red;">Titanium Studio, build: 3.1.3 の記事なので最新版では動作しないかもしれません</span><br />
<br />
新しい記事はこちら<br />
[Titanium Mobile] Android モジュールを作成 3.5.1GA<br />
<a href="https://www.blogger.com/blogger.g?blogID=2518627692473629903#allposts" target="_blank">https://www.blogger.com/blogger.g?blogID=2518627692473629903#allposts</a><br />
<br />
・モジュールの作成<br />
File>New>Mobile Module Project<br />
<br />
項目を入力<br />
<br />
hogeProxy.javaなどを編集<br />
<br />
・コンパイル<br />
<span style="color: red;">build.properties</span><br />
<span style="color: blue;">android.ndk=/Users/[user name]/android-ndk-r8</span><br />
ndkのパスを追加<br />
<br />
android NDKが入ってない時は追加する<br />
<a href="http://developer.android.com/intl/ja/tools/sdk/ndk/index.html">http://developer.android.com/intl/ja/tools/sdk/ndk/index.html</a><br />
<br />
Android NDKを触ってみる<br />
<a href="http://qiita.com/alingogo/items/203477c9da373ab7eacb" target="_blank">http://qiita.com/alingogo/items/203477c9da373ab7eacb</a><br />
<br />
<span style="color: red;">build.xml</span>を右クリック<br />
Run>Ant<br />
を実行<br />
<br />
プロジェクト名を右クリック>Publish>package<br />
<br />
Output LocationがTitaniumSDKの場合<br />
<span style="color: blue;">/Users/[user name]/Library/Application Support/Titanium/modules</span><br />
に配置される。<br />
<br />
Mobile Projectは開いているプロジェクトにModuleを直接配置し、<br />
対象のTiApp.xmlに自動で追加される<br />
<br />
・モジュールのインポート<br />
<span style="color: red;">TiApp.xml</span>>module>"+"ボタンで追加することができる。<br />
<br />
<br />
※モジュールをTitaniumプロジェクトに更新するときは<br />
TiApp.xmlから更新するプロジェクトを"-"ではずさないと更新されないらしいMarkfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-22250671548569496292015-03-29T15:51:00.000+09:002015-05-29T14:55:18.580+09:00[AndroidSDK]Error:Execution failed for task ':app:dexDebug'.Android StudioでEclipseで作られたAndroidプロジェクトをインポートしたところ以下のエラーが発生した。<br />
<br />
<span style="color: #cc0000;">Error:Execution failed for task ':app:dexDebug'.</span><br />
<span style="color: #cc0000;">> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: </span><br />
<span style="color: #cc0000;">Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home/bin/java''</span><br />
<span style="color: #cc0000;">finished with non-zero exit value 2</span><br />
<br />
このログにある<br />
<span style="color: #cc0000;">Execution failed for task ':app:dexDebug'.</span><br />
というエラーの原因は複数ある<br />
<br />
<b>EclipseからAndroid Studioのせかえ時のgradle対応でハマったエラーまとめ</b><br />
<a href="http://qiita.com/konifar/items/dbbbfd94ad103239c627" target="_blank">http://qiita.com/konifar/items/dbbbfd94ad103239c627</a><br />
<br />
<b>Android Studio: Gradle - build fails — Execution failed for task ':dexDebug'</b><br />
<a href="http://stackoverflow.com/questions/18021901/android-studio-gradle-build-fails-execution-failed-for-task-dexdebug" target="_blank">http://stackoverflow.com/questions/18021901/android-studio-gradle-build-fails-execution-failed-for-task-dexdebug</a><br />
<br />
今回こちらで発生したエラーは<br />
試験用と本番用2つの*.jarのライブラリに同名のクラスがあったため発生した。<br />
重複クラスがあるライブラリのうち1つをgradleファイルから外して解決した<br />
<br />
このエラーが発生した時はライブラリを見なおしてみると良い<br />
<br />
例<br />
dependencies {<br />
<span style="color: #999999;">// compile files('libs/samplelib_testing.jar')</span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>compile files(<span style="color: #6aa84f;">'libs/samplelib.jar'</span>)<br />
}<br />
<div>
<br /></div>
Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-60014677019824278142015-03-28T11:22:00.000+09:002015-03-30T11:23:13.927+09:00[AndroidSDK]ListViewで区切り線を非表示にする<div>
ListViewに</div>
<div>
<span style="color: #cc0000;">android</span><span style="color: blue;">:divider=</span><span style="color: #6aa84f;">"@null"</span></div>
<div>
を追加するだけ</div>
<div>
<span style="color: #cc0000;">android</span><span style="color: blue;">:divider=</span><span style="color: #6aa84f;">"#ffffff"</span></div>
<div>
で区切り線の色を変えることができる。</div>
<div>
<br /></div>
<div>
区切り線の高さを変更するときは</div>
<div>
<span style="color: #cc0000;">android</span><span style="color: blue;">:dividerHeight=</span><span style="color: #6aa84f;">"1dp"</span></div>
<br />
<div>
</div>
<br />
<div>
を追加する</div>
Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-45883980861288541822015-03-17T22:30:00.000+09:002015-03-18T10:09:00.979+09:00[AndroidSDK]用意した配列を読み込むres -> values に arrays.xmlを作成し
配列を作成する
<br />
<br />
<?xml version="1.0" encoding="utf-8"?><br />
<resources><br />
<string-array name="sample"><br />
<item>value1</item><br />
<item>value2</item><br />
<item>value3</item><br />
</string-array><br />
</resources><br />
<br />
呼び出すときは<br />
<br />
<pre class="brush:java;">String[] stringArray = (String[]) getResources().getStringArray(R.array.sample);
</pre>
Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-7918051673368046312015-03-08T19:30:00.000+09:002015-03-09T18:48:56.068+09:00[AndroidSDK]Android Studioでコード補完が無効になったAndroid Studio1.1でコード補完(macではControl+Space)が反応しなくなったことがある。<br />
<br />
2つ以上のプロジェクトを開くとコード補完がおかしくなる、っぽい<br />
コーディングするときは1つのプロジェクトにしよう。<br />
<br />
バージョンアップで修正されることを祈ろうMarkfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-68824785588899811402015-02-28T23:00:00.000+09:002015-03-09T18:50:45.308+09:00[Unity]uGUIのButtonを押したあとハイライトが残ってしまう問題Button(Script)の<span style="background-color: #cccccc;">Navigarion</span> -> <span style="background-color: #cccccc;">Automatic</span> -> <span style="background-color: #cccccc;">None</span>にする。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhazHQz-0G0kne_42ymNFbp1G7M_wOJRemp4oOenIwueVzTGd6LnGJcCjLf1y9LBW4jbT4kE5OmkvkJ94oQTNTEfeFl40PaAYEjfFajbr-44rAHEvzbsm39bcyNqXS6BNRR1eUq69_SqFk/s1600/Clipboard01.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhazHQz-0G0kne_42ymNFbp1G7M_wOJRemp4oOenIwueVzTGd6LnGJcCjLf1y9LBW4jbT4kE5OmkvkJ94oQTNTEfeFl40PaAYEjfFajbr-44rAHEvzbsm39bcyNqXS6BNRR1eUq69_SqFk/s1600/Clipboard01.png" height="208" width="400" /></a></div>
<br />
このNavigarionという機能はボタンなどのUIを使用した時にどういった動作するか決めるものらしい。Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-7320895694545092512015-02-26T23:00:00.000+09:002015-02-27T02:21:18.676+09:00[AndroidSDK]Dependency Project:application:unspecified on project app resolves to an APK archive which is not supported as a compilation dependency. <div style="orphans: 2; text-align: -webkit-auto; widows: 2;">
AndroidStudioで以下のエラーが発生した</div>
<div style="orphans: 2; text-align: -webkit-auto; widows: 2;">
<div>
<span style="color: #cc0000;">Warning:</span></div>
<div>
<span style="color: #cc0000;">Dependency Project:application:unspecified on project app resolves to an APK archive which is not supported as a compilation dependency. </span></div>
<div>
<span style="color: #cc0000;">File:Users/UserName/AndroidStudioProjects/project/application/build/outputs/apk/application-release-unsigned.apk</span></div>
<div>
<br /></div>
<div>
プロジェクトの依存関係がおかしい、らしく原因は</div>
<div>
<div>
<span style="background-color: #cccccc; text-align: -webkit-auto;">apply plugin: 'com.android.application'</span></div>
</div>
<div>
を<span style="text-align: -webkit-auto;">build.graleで保持しているアプリケーションが2つあったので</span></div>
<div>
1つを</div>
<div>
<div>
<span style="background-color: #cccccc;"><span style="text-align: -webkit-auto;">apply plugin: '</span><span style="text-align: -webkit-auto;">com.android.</span><span style="text-align: -webkit-auto;">library'</span></span></div>
</div>
<div>
<span style="text-align: -webkit-auto;">にしてインポートしたところ解消された。</span><br />
<span style="text-align: -webkit-auto;"><br /></span>
<span style="text-align: -webkit-auto;">ライブラリにしたモジュールは</span>build.graleから<span style="orphans: 2; text-align: -webkit-auto; widows: 2;">applicationIdを削除する必要がある。</span></div>
<div>
<span style="text-align: -webkit-auto;"><br /></span></div>
<div>
<span style="text-align: -webkit-auto;">Android Studioでは</span></div>
<div>
<span style="text-align: -webkit-auto;">プロジェクト -> アプリケーション</span></div>
<div>
<span style="text-align: -webkit-auto;"> -> ライブラリ</span></div>
<div>
-> モジュール</div>
<div>
といった関係でプロジェクト内には3種類のリソースがあるようだ</div>
</div>
Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-81619365805816721892015-02-25T23:00:00.000+09:002015-02-27T02:25:02.033+09:00[AndroidSDK]Android Studio for macでオートインポートが動作しないmacでAuto importは<br />
Control + Option + o<br />
となっているが動作がうまくいっていなかったが<br />
設定が足りなかった。<br />
<br />
Android Studio -> Preferences -> Editor ->Auto Import > Insert imports on paste<br />
-> All<br />
<div>
に設定、さらに<br />
<span style="background-color: #cccccc;">Add unambigious imports on the fly</span><br />
にチェックをする必要がある。<br />
<br />
<b>stackoverflow</b><br />
What is the shortcut to Auto import all in Android Studio?<br />
<a href="http://stackoverflow.com/questions/16615038/what-is-the-shortcut-to-auto-import-all-in-android-studio" target="_blank">http://stackoverflow.com/questions/16615038/what-is-the-shortcut-to-auto-import-all-in-android-studio</a><br />
<br /></div>
Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-55483605771628324462015-02-19T22:00:00.000+09:002015-02-20T12:27:45.012+09:00[AndroidSDK]No resource found that matches the given name 'Theme.AppCompat.Light.DarkActionBar'AndroidSDK+Eclipseでプロジェクトを新規作成時に以下のエラーが発生した<br />
プロジェクトはTarget SDKが4.4 Min SDKが2.2に設定されていた<br />
<br />
<span style="color: #e06666;">error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light.DarkActionBar'.<span class="Apple-tab-span" style="white-space: pre;"> </span></span><br />
<span style="color: #e06666;">styles.xml<span class="Apple-tab-span" style="white-space: pre;"> </span>/ProjectName/res/values-v14<span class="Apple-tab-span" style="white-space: pre;"> </span>line 8<span class="Apple-tab-span" style="white-space: pre;"> </span>Android AAPT Problem</span><br />
<br />
サポートライブラリが足りてない、<br />
ということでインポートするのだが、やり方がちょっと手間だ<br />
EclipsからFile -> import -> Android - Exsting Android Code in Workspace<br />
で<br />
"android-sdk\extras\android\support\v7\appcompat"<br />
を選択する<br />
<br />
Project -> properties -> Android<br />
を開き<br />
先ほどのインポートしたファイルを選択すると、足りていないファイルがインポートされる<br />
<br />
"android-sdk\extras\android\support\v7\"<br />
をインポートすると、v7のライブラリをすべてインポートできるMarkfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-27647792008638430702015-02-18T23:00:00.000+09:002015-02-20T15:50:32.663+09:00[AndroidSDK]Gradle DSL method not found: 'compile()'Android Studioで追加されたBuild.gradleでGithubにあるモジュールをしようと<br />
dependenciesを追加したところ以下のエラーが発生した。<br />
<span style="color: #cc0000;">Gradle DSL method not found: 'compile()'</span><br />
<br />
結果からと言うとprojectのbuild.gradleではなくappのbuild.gradleにdependenciesを追加すると良い<br />
<br />
<b>stackoverflow</b><br />
<b>Android gradle build Error:(9, 0) Gradle DSL method not found: 'compile()'.</b><br />
<a href="http://stackoverflow.com/questions/26851230/android-gradle-build-error9-0-gradle-dsl-method-not-found-compile" target="_blank">http://stackoverflow.com/questions/26851230/android-gradle-build-error9-0-gradle-dsl-method-not-found-compile</a>Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-22944530943822403912015-02-17T21:30:00.000+09:002015-02-18T17:17:34.036+09:00[iOS]main.mでEXC_BAD_ACCESSエラー<span style="color: #a64d79;">return</span> <span style="color: #674ea7;">UIApplicationMain</span>(argc, argv, <span style="color: #a64d79;">nil</span>, <span style="color: #674ea7;">NSStringFromClass</span>([AppDelegate class]));<br />
でEXC_BAD_ACCESSが発生した時はデバッグモードのゾンビオブジェクトを見たり<br />
エラー時にログを発生される方法がある。<br />
<br />
<b>Zero4Racer PRO Developer's Blog</b><br />
iOS 開発で、EXC_BAD_ACCESS とさよならするための6つのルール<br />
<a href="http://www.zero4racer.com/blog/88" target="_blank">http://www.zero4racer.com/blog/88</a><br />
<br />
<b>DJやったり、IPhoneアプリ開発やったり、、、</b><br />
【iPhoneアプリ】EXC_BAD_ACCESSを解決する<br />
<a href="http://dj32mitsu.blog.fc2.com/blog-entry-21.html" target="_blank">http://dj32mitsu.blog.fc2.com/blog-entry-21.html</a><br />
<br />
<br />
しかし今回コーディングをしているうちにどうしても解消できないエラーが発生した。<br />
エラー内容はMain.mでのEXC_BAD_ACCESSだが、どうしても解消できない。<br />
コードを1つ1つ検証してみた結果<br />
main.m後に呼び出されるAppDelegate.mで呼び出されるはずの関数をコメントアウトしていた。<br />
というのが原因だった。<br />
<br />
間接的な原因はAppDelegateをいろいろと変更しているうちにおかしなクラスになってしまったようだ。<br />
AppDelegateで行う処理はAppDelegateでないとできない処理だけにしてこう。Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-75216683291503622452015-02-03T23:19:00.000+09:002015-02-03T23:19:05.728+09:00[iOS]setNavigationBarHiddenで座標frameがずれるiOS7以降setNavigationBarHiddenを呼び出すとViewControllerのSubViewsが
UINavigationbarが消えた分y座標が変更される(-44.0移動する)
自動で変更したくない時は
<pre class="brush:cpp;">
self.automaticallyAdjustsScrollViewInsets = NO;
</pre>
を使用する
Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-84416248596225349022015-02-02T23:00:00.000+09:002015-02-05T17:18:08.501+09:00[iOS]iOS7以降のStatusbar、Navigationbar、Toolbarのメモ<pre class="brush:c#;">
//ProjectAppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
float version = [[[UIDevice currentDevice] systemVersion] floatValue];
if (version >= 8.0) {
//iOS8でtoolbar naigationbarの透過をオフにする
//iOS7ではsetTranslucentでBOOLを受け付けないのでクラッシュする
[[UINavigationBar appearance] setTranslucent:NO];
[[UIToolbar appearance] setTranslucent:NO];
}
return YES;
}
//ViewController
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
isHidingStatusBar = YES;
//iOS7 ステータスバーの表示/非表示切り替え
//navigationBarHidden toolbarHiddenを呼び出した時にも呼ばれる
[self setNeedsStatusBarAppearanceUpdate];
//iOS7
self.navigationController.navigationBarHidden = YES;
self.navigationController.toolbarHidden = YES;
[self.navigationController.navigationBar setBarTintColor:[UIColor blackColor]];
[self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];
[self.navigationController.navigationBar setTranslucent:YES];
[self.navigationController setNavigationBarHidden:NO];
[self.navigationController.toolbar setBarTintColor:[UIColor blackColor]];
[self.navigationController.toolbar setTintColor:[UIColor whiteColor]];
[self.navigationController.toolbar setTranslucent:YES];
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
//[[[UIApplication sharedApplication] keyWindow] tintColor]は変更がない限りデフォルトカラー
[self.navigationController.navigationBar setBarTintColor:[[[UIApplication sharedApplication] keyWindow] tintColor]];
[self.navigationController.navigationBar setTintColor:[[[UIApplication sharedApplication] keyWindow] tintColor]];
[self.navigationController.toolbar setBarTintColor:[[[UIApplication sharedApplication] keyWindow] tintColor]];
[self.navigationController.toolbar setTintColor:[[[UIApplication sharedApplication] keyWindow] tintColor]];
}
//setNeedsStatusBarAppearanceUpdateで呼び出される
- (BOOL)prefersStatusBarHidden {
//ステータスバーの表示/非表示をBoolで指定
return isHidingStatusBar;
}
//setNeedsStatusBarAppearanceUpdateで呼び出される
- (UIStatusBarAnimation)preferredStatusBarUpdateAnimation
{
//アニメーションの設定
return UIStatusBarAnimationFade;
}
</pre>Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-88294441148928748102015-01-20T22:30:00.000+09:002015-02-27T02:31:08.828+09:00[iOS]iOS7で文字列のサイズを求める<pre class="brush:cpp;">//iOS6まで、非推奨
CGSize size = [textLabel.text sizeWithFont:[UIFont systemFontOfSize:fontSize]
constrainedToSize:textLabel.size
lineBreakMode:UILineBreakModeWordWrap];
//iOS7
CGSize size = [textLabel.text boundingRectWithSize:textLabel.size
options:NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:textLabel.font} context:nil].size;
</pre>
Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-73507057696050630232015-01-15T21:00:00.000+09:002015-01-22T10:50:12.778+09:00[iOS]iOS7以降のModalView呼び出しと解放<pre class="brush:cpp;">
float version = [[[UIDevice currentDevice] systemVersion] floatValue];
if (version >= 7.0) {
//iOS7以降
//呼び出し
[self presentViewController:vc animated:YES completion:nil];
//解放
[self dismissViewControllerAnimated:YES completion:nil];
} else {
//iOS6以前
//呼び出し
[self presentViewController:vc animated:YES];
//解放
[self.parentViewController dismissModalViewControllerAnimated:YES];
}
</pre>Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-5133803462876062022015-01-14T22:30:00.000+09:002015-01-20T12:52:50.803+09:00[iOS]iOSのバージョンを調べる<pre class="brush:cpp;">
float version = [[[UIDevice currentDevice] systemVersion] floatValue];
if (version >= 8.0) {
} else {
}
</pre>Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0tag:blogger.com,1999:blog-2518627692473629903.post-80411896961772527742014-12-11T22:30:00.000+09:002015-01-20T12:53:10.910+09:00[Android]別アプリにIntentで画像を送る今のほとんどのアプリにある共有ボタンにresフォルダ内にある画像をつける<br />
<pre class="brush:java;">
Uri imageUri = Uri.parse("android.resource://" + getPackageName() + "/drawable/" + "imageName");
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("image/jpeg");
intent.putExtra(Intent.EXTRA_STREAM, imageUri);
startActivity(intent);
</pre>Markfour memohttp://www.blogger.com/profile/05507266032390321403noreply@blogger.com0