apktool でビルドコマンドを実行したところ以下のような public.xml の drawable/xxx が定義されていないというエラーが大量に出た。
...\res\values\public.xml:110: error: Public symbol drawable/foo declared here is not defined.
Windows のコマンドブロンプトを逆スクロールしても、このエラーで埋まっていて最初のほうの出力メッセージを見ることができない。
それで次のコマンドラインで標準エラー出力も含めて err.txt にリダイレクトした。
>apktool b target 1>err.txt 2>&1
するとエラーの始まりは拡張子が png だが実体は jpeg のファイルが原因で起きていた。
I: Building resources...
libpng error: Not a PNG file
ERROR: Failure processing PNG image ...\res\drawable-hdpi-v4\bar.png
...\res\values\public.xml:15: error: Public symbol drawable/hoge declared here is not defined.
(以下同様の public.xml の symbol not defined のエラーが大量に続く)
bar.png を調べると jpeg だったので png に変換して上書きした。
そして再びビルドすると public.xml symbol not defined のエラーは跡形もなく消えて、無事 apk が出来上がった。
実を言うと、最初はエラー出力の全容を確認することなく、 public.xml symbole ... not defined のエラーメッセージだけを調べて、解決策が見つからず諦めかけたのだ。
僕のようなおっちょこちょいも何人かはいるだろうと思って、ここに書いておくことにした。
2015年11月15日日曜日
2015年5月1日金曜日
Google Blogger で Google ドライブにあるオーディオファイルを再生する
- 2024年1月20日:ここに記述した方法では再生出来なくなった
- 2023年10月20日:Googleドライブの仕様が変わっていたので修正した
- 2017年10月28日:共有のリンクのURLの仕様が変わっていたので修正した
Google Blogger は動画ファイルの埋め込みをサポートしているが、オーディオファイルの埋め込みはサポートしていない。音楽ファイルをどこか別のサイトに置き HTML5 の audio タグで再生することになる。ではどこのサイトに置くか、すぐに思いつくのは Google ドライブである。
まずはオーディオファイル (mp3) を Google ドライブにアップロードし「リンクを知っている全員が閲覧可」で共有する。そして「リンクを取得」すると次のような URL が得られる。
https://drive.google.com/file/d/0B2P36AuimE-gcGFaQXBkN3E0Tjg/view?usp=sharing&resourcekey=0-irEH_iL1lr9w0mXv3XB-WQ
この URL を audio タグの src に指定したいのだが、このままでは使えないのでidらしき部分と resourcekey 部分を使って以下のように変更する。ただし Googleドライブの仕様が変わると使えなくなることをお断りしておく。https://drive.google.com/uc?id=0B2P36AuimE-gcGFaQXBkN3E0Tjg&export=download&resourcekey=0-irEH_iL1lr9w0mXv3XB-WQ
埋め込むタグは以下のようになる。
<audio autobuffer="false" controls="true" preload="none">
<source src="https://drive.google.com/uc?id=0B2P36AuimE-gcGFaQXBkN3E0Tjg&export=download&resourcekey=0-irEH_iL1lr9w0mXv3XB-WQ"></source>
Your browser doesn't support HTML5 audio.
</audio>
Okay, folks...
登録:
投稿 (Atom)