どうも、俺です。
eclipseを使ってAndroidアプリ開発中に、
組み込んだgoogle-play-serviceでタイトル通りのエラーがでたときの対応。
error: Error retrieving parent for item: No resource found that matches the given name '@android:style/
Theme.Material.Light.DialogWhenLarge.NoActionBar'.
eclipseの設定をイジってしまったのだと思いますが、どこをどうイジったのか全く覚えておりません。
修正を色々試みたところ、
StackOverflowに似たようなエラーで困っている人発見!
今回の僕の場合、
appinvite_style.xmlに記述されている
Theme.Material
がAPIレベル21以上で利用できる、とのことなので、
google-play-serviceプロジェクトの
プロパティ>Android>Project Build Target
をAPI21にして修正完了。
以上でぇぇぇぇぇぇぇぇす。。
2015年12月24日木曜日
2015年12月22日火曜日
cocos2d-x CCRenderTextureでゲーム中のスクショを撮るときの注意点
どうも、俺です。
cocos2d-x (v2.2.6)でTwitter投稿用に画面のキャプチャを撮る処理を実装
したのですが、
キャプチャした時にCCParticleSystemでパーティクルを表示していると画面が真っ黒になってしまう問題に遭遇しました。
※すべてのパーティクルでなる訳ではありません。むしろ一部のパーティクルでのみ発生。
※iOSでのみ確認しましたが、恐らくAndroidでも同様のはず..。
この処理のままパーティクル描画ある画面をキャプチャすると、、
このようにすることで対応できました。
※_myFireParticleは炎のCCParticleSystemインスタンス。
利用するccBlendFuncは、元のパーティクルが崩れない最も適したもので色々試してみてください。
以上でぇぇぇぇぇぇぇぇす。
cocos2d-x (v2.2.6)でTwitter投稿用に画面のキャプチャを撮る処理を実装
したのですが、
キャプチャした時にCCParticleSystemでパーティクルを表示していると画面が真っ黒になってしまう問題に遭遇しました。
※すべてのパーティクルでなる訳ではありません。むしろ一部のパーティクルでのみ発生。
※iOSでのみ確認しましたが、恐らくAndroidでも同様のはず..。
赤いプレイヤーのうしろにある炎がパーティクルです。
キャプチャーの撮影処理は、
CCRenderTexture *AppDelegate::takePicture()
{
CCSize size = CCDirector::sharedDirector()->getWinSize();
CCRenderTexture *texture = CCRenderTexture::create((int)size.width,
(int)size.height,
kCCTexture2DPixelFormat_RGBA8888,
GL_DEPTH24_STENCIL8_OES);
texture->setPosition(ccp(size.width * 0.5f, size.height * 0.5f));
texture->begin();
CCDirector::sharedDirector()->getRunningScene()->visit();
texture->end();
return texture;
}
のように処理しています。
この処理のままパーティクル描画ある画面をキャプチャすると、、
このように、パーティクル部分が黒くなってしまいます。
これは利用している炎のパーティクルのccBlendFunctionを変更することで対応できます。
今回の場合は、
ccBlendFunc blend;
blend.src = GL_ONE_MINUS_SRC_ALPHA;
blend.dst = GL_ONE;
_myFireParticle->setBlendFunc(blend);
CC_SAFE_RELEASE_NULL(_screenShot);
CCRenderTexture *screenShot = AppDelegate::takePicture();
CC_SAFE_RETAIN(_screenShot);
blend.src = GL_ONE_MINUS_SRC_ALPHA;
blend.dst = GL_DST_ALPHA;
_myFireParticle->setBlendFunc(blend);
このようにすることで対応できました。
※_myFireParticleは炎のCCParticleSystemインスタンス。
利用するccBlendFuncは、元のパーティクルが崩れない最も適したもので色々試してみてください。
以上でぇぇぇぇぇぇぇぇす。
2015年9月18日金曜日
cocos2d-x Spineのサンプルアニメーションが動かないのでランタイムを最新に更新する
どうも、俺です。
cocos2d-x v2.2.6でSpine v2.1.27(Essential)に梱包されているサンプルアニメーション(iOS版)が動かなかったので、
Spine-runtimeをマニュアル通り、最新verに更新したらcocos2d-xがエラーだらけになり、
四苦八苦しながら何とか動かせるようにまでにした時のメモ。
■Spineがexportする.atlasファイルが読み込めない問題
まず、自分で簡単なアニメーションを作成しSpineでエクスポートしたファイルを
cocos2d-xで動かそうとすると
、この問題にぶち当たります。
これは、出力された.atlasファイルを修正すると直ります。
上の画像にある
size: xxx, xxx
という1行を削除すればOKです。
または、このあと行うSpineのランタイムを更新すると直ります。
■Spineのランタイムを更新する問題
githubからランタイムをDLしてきます。
EsotericSoftware/spine-runtimes
元からあるextensions/spineフォルダは別名でバックアップしておきます。
githubからDLしたファイルすべてをまた
extensions/spineというフォルダに入れます。
READMEによるとこれで動くぜ、とのことです。
動きません。
なぜなら、Xcodeには前の古いファイルがまだ紐付けられているからです。
ここでビルドしますが、まだまだ動きません。
No type named 'function' in namespace 'std'
といったエラーが出ます。
これは新しいSpine-runtime内のソースファイルの一部が
C++11の規格によって記述されているから。
cocos2d-x v3系であれば問題ない(?)のかもしれませんが、v2系ではだめです。
Xcode側でC++11を使えるようにします。
TARGETSのBuild Settings内にある「Apple LLVM 6.1 - Language - C++」という箇所の
・C++ Language Dialectを「C++11 [-std=c++11]」に
・C++ Standard Libraryを「libc++(LLVM C++ standard library with C++11 support)」
に変更します。
同様にcocos2d-xプロジェクト側のBuild Settingsも上に合わせます。
次にクラス名とメソッドを変更します。
こうなります。
あとはプロジェクトを一旦Cleanしてからビルドすると動くと思います。
それでもまだエラーが出る場合は、
プロジェクト名>Build Phases>Compile Sources
に古いspine/以下のソースファイルが赤く表示されているかも知れません。
その場合はそれらを消してもう一度試してみてください。
※※注意※※
もし別のプロジェクトに手を付ける場合、
spine/フォルダや、C++11コンパイラオプションの変更などを元に戻して下さい。
もう、cocos2d-x v3系にしないとな。。。
以上でぇぇぇぇす。
cocos2d-x v2.2.6でSpine v2.1.27(Essential)に梱包されているサンプルアニメーション(iOS版)が動かなかったので、
Spine-runtimeをマニュアル通り、最新verに更新したらcocos2d-xがエラーだらけになり、
四苦八苦しながら何とか動かせるようにまでにした時のメモ。
■Spineがexportする.atlasファイルが読み込めない問題
まず、自分で簡単なアニメーションを作成しSpineでエクスポートしたファイルを
cocos2d-xで動かそうとすると
、この問題にぶち当たります。
これは、出力された.atlasファイルを修正すると直ります。
上の画像にある
size: xxx, xxx
という1行を削除すればOKです。
または、このあと行うSpineのランタイムを更新すると直ります。
■Spineのランタイムを更新する問題
githubからランタイムをDLしてきます。
EsotericSoftware/spine-runtimes
更新に必要なファイルは
spine-c/以下 と
spine-cocos2dx/2/以下 のファイルだけです。
READMEにある通り、上のファイル群をcocos2d-xのextensions/フォルダ以下へコピーします。
githubからDLしたファイルすべてをまた
extensions/spineというフォルダに入れます。
READMEによるとこれで動くぜ、とのことです。
動きません。
なぜなら、Xcodeには前の古いファイルがまだ紐付けられているからです。
ここを正しくします。
やり方は色々ありますが、僕の場合は面倒なので
まずディレクトリーツリーからspine/をRemove Referencesしてから、
DLしてきたextensions/spineフォルダをXcodeへドラッグ&ドロップします。
No type named 'function' in namespace 'std'
といったエラーが出ます。
これは新しいSpine-runtime内のソースファイルの一部が
C++11の規格によって記述されているから。
cocos2d-x v3系であれば問題ない(?)のかもしれませんが、v2系ではだめです。
Xcode側でC++11を使えるようにします。
TARGETSのBuild Settings内にある「Apple LLVM 6.1 - Language - C++」という箇所の
・C++ Language Dialectを「C++11 [-std=c++11]」に
・C++ Standard Libraryを「libc++(LLVM C++ standard library with C++11 support)」
に変更します。
同様にcocos2d-xプロジェクト側のBuild Settingsも上に合わせます。
次にクラス名とメソッドを変更します。
// CCSkeletonAnimation *animation = CCSkeletonAnimation::createWithFile("test.json", "test.atlas");
spine::SkeletonAnimation *animation = spine::SkeletonAnimation::createWithFile("test.json", "test.atlas", 1.0f);
// animation->setAnimation("walk", true);
animation->setAnimation(0, "walk", true);
this->addChild(animation);
こうなります。
あとはプロジェクトを一旦Cleanしてからビルドすると動くと思います。
それでもまだエラーが出る場合は、
プロジェクト名>Build Phases>Compile Sources
に古いspine/以下のソースファイルが赤く表示されているかも知れません。
その場合はそれらを消してもう一度試してみてください。
※※注意※※
もし別のプロジェクトに手を付ける場合、
spine/フォルダや、C++11コンパイラオプションの変更などを元に戻して下さい。
もう、cocos2d-x v3系にしないとな。。。
以上でぇぇぇぇす。
2015年9月4日金曜日
[Xcode] コマンドラインからipaファイルをエクスポートする
どうも、俺です。
今日は、アーカイブされたiOSアプリをコマンドラインから.ipaファイルをビルドする方法をメモ。
いつも通りProduct>Archiveします。
オーガナイザーが起動するので、対象のビルドされたアプリを選択しCtrl押しながらクリックし「Show in Finder」を選択。
Finderが起動するので、ファイルのパスとファイル名をメモ。
次に、XcodeのBuild Settings>Code Signingからビルドに使用するプロビジョニングプロファイルの名称(通称?)をメモ。
今回の場合、Releaseビルドをしようと思うので「KabekeriSasuke3_AppStore」をメモ。
あとはビルドコマンドを打ち込むだけ。
なので、今回の場合はこうなります。
こうするとDesktop上にSasuke3App.ipaファイルが出来上がります。
なぜこのような面倒なことをするのか、と言うと理由は2つ。
1つは、例えば受託案件でクライアント所有の証明書やプロビジョニングプロファイルでビルドする際、先方のiTunesConnectのアカウント情報を知らないとXcodeからDistributionビルドできません。
そういう場合に、上の方法でビルドします。
もう1つは、自社アプリをAdHocビルドしようとしたときに、オーガナイザで選択するプロビジョニングプロファイルが「XC Ad Hoc: xxxx〜....」というファイルしか選択できないときがあります。(ありました。)
なぜそうなってしまうのか未だ原因は分かっていませんし、そのプロビジョニングプロファイルでもビルド出来るのですが、
何かしっくりこないので、そういう場合にコマンドラインからビルドしました。
XC Ad Hoc: 〜プロビジョニングプロファイルについて何か知っている方いらっしゃったら教えてください〜m(__)m
以上でぇえぇぇす。
今日は、アーカイブされたiOSアプリをコマンドラインから.ipaファイルをビルドする方法をメモ。
いつも通りProduct>Archiveします。
オーガナイザーが起動するので、対象のビルドされたアプリを選択しCtrl押しながらクリックし「Show in Finder」を選択。
Finderが起動するので、ファイルのパスとファイル名をメモ。
次に、XcodeのBuild Settings>Code Signingからビルドに使用するプロビジョニングプロファイルの名称(通称?)をメモ。
今回の場合、Releaseビルドをしようと思うので「KabekeriSasuke3_AppStore」をメモ。
あとはビルドコマンドを打ち込むだけ。
xcodebuild -exportArchive -archivePath '.xcarchiveファイルのパス' -exportPath '出力先のファイルパス' -exportFormat ipa -exportProvisioningProfile 'プロビジョニングプロファイルの名称'
なので、今回の場合はこうなります。
xcodebuild -exportArchive -archivePath '/Users/USER_NAME/Library/Developer/Xcode/Archives/2015-09-04/Sasuke3 2015-09-04 16.07.xarchive' -exportPath '/Users/USER_NAME/Desktop/Sasuke3App' -exportFormat ipa -exportProvisioningProfile 'KabekeriSasuke3_AppStore'
こうするとDesktop上にSasuke3App.ipaファイルが出来上がります。
なぜこのような面倒なことをするのか、と言うと理由は2つ。
1つは、例えば受託案件でクライアント所有の証明書やプロビジョニングプロファイルでビルドする際、先方のiTunesConnectのアカウント情報を知らないとXcodeからDistributionビルドできません。
そういう場合に、上の方法でビルドします。
もう1つは、自社アプリをAdHocビルドしようとしたときに、オーガナイザで選択するプロビジョニングプロファイルが「XC Ad Hoc: xxxx〜....」というファイルしか選択できないときがあります。(ありました。)
なぜそうなってしまうのか未だ原因は分かっていませんし、そのプロビジョニングプロファイルでもビルド出来るのですが、
何かしっくりこないので、そういう場合にコマンドラインからビルドしました。
XC Ad Hoc: 〜プロビジョニングプロファイルについて何か知っている方いらっしゃったら教えてください〜m(__)m
以上でぇえぇぇす。
PostgreSQLでスキーマ(テーブル定義)を取得する方法
どうも、俺です。
PostgreSQLでターミナル上からスキーマ情報を取得したい場合。
以上でぇぇぇぇす。
PostgreSQLでターミナル上からスキーマ情報を取得したい場合。
$ pg_dump --schema-only DATABASE_NAME > schema.sql
以上でぇぇぇぇす。
Labels:
Linux,
postgresql
登録:
投稿 (Atom)















