Mac Yosemiteを使用しています。 Android platformのビルドを実行すると次のエラーが発生します:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':processDebugResources'.
> com.Android.ide.common.internal.LoggedErrorException: Failed to run command:
/Users/sairamk/Development/Android-sdk-macosx/build-tools/22.0.1/aapt package -f --no-crunch -I /Users/sairamk/Development/Android-sdk-macosx/platforms/Android-22/Android.jar -M /Users/sairamk/projects/dummy_app/platforms/Android/build/intermediates/manifests/full/debug/AndroidManifest.xml -S /Users/sairamk/projects/dummy_app/platforms/Android/build/intermediates/res/debug -A /Users/sairamk/projects/dummy_app/platforms/Android/build/intermediates/assets/debug -m -J /Users/sairamk/projects/dummy_app/platforms/Android/build/generated/source/r/debug -F /Users/sairamk/projects/dummy_app/platforms/Android/build/intermediates/res/resources-debug.ap_ --debug-mode --custom-package com.ionicframework.bcgsandbox553389 -0 apk --output-text-symbols /Users/sairamk/projects/dummy_app/platforms/Android/build/intermediates/symbols/debug
Error Code:
1
Output:
/Users/sairamk/projects/dummy_app/platforms/Android/build/intermediates/res/debug/xml/config.xml:59: error: Error parsing XML: unbound prefix
IOSのビルドは完全に正常に実行されます。 Android SDKをインストールし、Android_HOMEおよびAndroid_SDK_ROOTシステム変数を構成しました。
また、プラットフォームを削除して再度追加し、次を使用してクリーンなプラットフォームフォルダを作成しようとしました:
ionic platform remove Android
ionic platform add Android
でもダメ。
インストールしたAndroid SDKビルドツールバージョン-19.1,20,21.1.2および22.0.1
AndroidManifest.xml設定:
<uses-sdk Android:minSdkVersion="16" Android:targetSdkVersion="22" />
この問題は、phonegapのxml名前空間(xmlns:gap = "http://phonegap.com/ns/1.0")をconfig.xmlに追加することで解決されます。
追加後:
<widget id="com.ionicframework.yourpackagename"
version="0.0.1"
xmlns="http://www.w3.org/ns/widgets"
xmlns:cdv="http://cordova.Apache.org/ns/1.0"
xmlns:gap="http://phonegap.com/ns/1.0">
同様の問題に直面している人の助けになることを願っています。
これをデバッグするための詳細情報を取得するには、./platforms/Android/
フォルダーおよび実行:
Macユーザー:
gradlew --info build clean
Linuxユーザー(Pierreに感謝):
./gradlew --info build clean
Windowsユーザー:
gradlew.bat --info build clean
これにより、より詳細になります。
私の問題はこの方法で解決され、ファイル名にスペースが含まれるプロジェクトフォルダーに誤ってドロップされたファイルが見つかりました。
from ionicフォーラム
「イオンリソース」サービスエラーが原因でした。
ここで「イオンリソース」コマンドを実行し、/ resources/Android/splashフォルダーを調べて確認し、これらのpngファイルをすべてクリックして開いたところ、いくつかの写真が壊れていることがわかりました(半分に見えます)。
そのため、これらの壊れたpngファイルを(同じフォルダにある)「通常の」pngファイルに置き換えてから、「イオンビルド」コマンドを実行すると、エラーが消えます。
https://forum.ionicframework.com/t/ionic-Android-build-problem/29131/7?u=bleuscyther
しかし、私の場合、以下の行を削除することで解決しました
<gap:plugin name="nl.x-services.plugins.socialsharing" />
私のconfig.xmlファイルから
Windowsで開発している場合、「パス名」が原因である可能性があります。 Windowsでは、260文字より長いパス名は許可されていません。したがって、短くすることで解決できる場合があります。
同様の問題があります。回避策を見つけるために、新しい空のプロジェクトを作成しました。コンパイルとエミュレーションは良好でした。 wwwフォルダーに問題があることがわかりました。いくつかの倍数テストの後、私の写真の1つは「Clément.png」という名前になりました。「Clement.png」を得るためにアクセントを削除すると、問題が解決しました。
はい、以下の行を削除した後にビルドが成功しました
<gap:plugin name="nl.x-services.plugins.socialsharing" />
config.xmlから
Vue.jsとWebpackを使用して製品ファイルを生成し、出力に* .gzファイルが含まれています。これはCordovaのwww /に入れると問題でした。
理由はわかりませんが、Androidプラットフォームが機能しませんでした。
ionic platform rm Android
ionic platform add Android
他の一部の人と同様に、私のエラーは、いくつかのひどい隠しファイルが原因で段階的に作動します。
私の場合、それは特別な「アイコン」でした。 OSXがカスタムアイコン(Googleドライブ、Dropboxなど)を持つ任意のフォルダー内に作成するファイル。ファイルには実際には「アイコン\ r」という名前が付けられており、Java/gradleが「\ r」(または予期しないエスケープされていない文字)につまずいていると思います。
解決策は、偽の「アイコン」をすべて無効にすることでした。私のプロジェクトディレクトリからのファイル:
# note that this is the syntax for zsh.
# If you're using bash test out the pattern first before including '-delete'
find ~/code/myproject/ -name Icon$'\r' -delete
私にとっては、アセットフォルダー内にあった画像の名前の長さが長いことが判明しました。
注意してください。これらの画像を削除した後も、同じエラーが表示されていました。その理由は、画像がwww
フォルダー内に保持されているためです。そのフォルダーを削除して動作しました!
きれいなCordova上のArch Linuxでこの問題が発生しました。これをデバッグするために、@ CapeCorderの回答に従いましたが、これにはzlib
ライブラリがないことがわかりました。簡単にインストール
Sudo pacman -S lib32-zlib
そしてうまく動作します;)
私の場合、それはpushwooshプラグインでした。
<gap:plugin name="pushwoosh-phonegap-plugin">
プラグインを削除する必要はありません。前回動作したプラグインのバージョンを設定するだけです。これは私のために働いています。
<gap:plugin name="pushwoosh-phonegap-plugin" spec="7.0.4" source="npm"/>