技術

【ionic】Android build Error: Uh oh!(ええとああ!)

投稿日:

どうも中田です。
環境をいろいろとupdateしたら $ionic build android が通らなくなった!
ということでその解決までの道のりです。

 
 

第1のエラー

$ ionic build android
Error during processing of action! Attempting to revert...
Error: Uh oh!
Invalid Version: undefined

感謝サイト
stackOverflow:Attempting to revert

どうやら調子に乗ってupdateしてたのが原因だったようです。

 
 

cordova cliのバージョンを確認しよう

$ ionic info

Your system information:

Cordova CLI: 5.4.1
Gulp version:  CLI version 3.9.0
Gulp local:   Local version 3.9.0
Ionic Version: 1.0.1
Ionic CLI Version: 1.7.12
Ionic App Lib Version: 0.6.5
ios-deploy version: Not installed
ios-sim version: 3.1.1 
OS: Mac OS X El Capitan
Node Version: v0.12.0
Xcode version: Xcode 7.2 Build version 7C68

 
 

cordova cliのバージョンを落とそう!

npm install -g cordova@5.4.0

 
 

わちゃわちゃとインストールされて…

 
 
再確認
 

$ ionic info

Your system information:

Cordova CLI: 5.4.0
Gulp version:  CLI version 3.9.0
Gulp local:   Local version 3.9.0
Ionic Version: 1.0.1
Ionic CLI Version: 1.7.12
Ionic App Lib Version: 0.6.5
ios-deploy version: Not installed
ios-sim version: 3.1.1 
OS: Mac OS X El Capitan
Node Version: v0.12.0
Xcode version: Xcode 7.2 Build version 7C68

 

では気を取り直して…

 

$ ionic build android

 
 

第2のエラー

/Users/user/git/project/platforms/android/src/com/plugin/gcm/GCMIntentService.java:13: エラー: パッケージandroid.support.v4.appは存在しません
import android.support.v4.app.NotificationCompat;
                             ^
/Users/user/git/project/platforms/android/build/intermediates/exploded-aar/com.google.android.gms/play-services-analytics/8.4.0/classes.jar(com/google/android/gms/analytics/GoogleAnalytics.class): 警告: タイプ'RequiresPermission'内に注釈メソッド'allOf()'が見つかりません: android.support.annotation.RequiresPermissionのクラス・ファイルが見つかりません
/Users/user/git/project/platforms/android/src/com/plugin/gcm/GCMIntentService.java:101: エラー: パッケージNotificationCompatは存在しません
		NotificationCompat.Builder mBuilder =
		                  ^
/Users/user/git/project/platforms/android/src/com/plugin/gcm/GCMIntentService.java:102: エラー: パッケージNotificationCompatは存在しません
			new NotificationCompat.Builder(context)
			                      ^
注意:一部の入力ファイルは非推奨のAPIを使用またはオーバーライドしています。
注意:詳細は、-Xlint:deprecationオプションを指定して再コンパイルしてください。
注意:入力ファイルの操作のうち、未チェックまたは安全ではないものがあります。
注意:詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください。
エラー3個
警告1個
 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileArmv7DebugJava'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 4.554 secs

/Users/user/git/project/platforms/android/cordova/node_modules/q/q.js:126
                    throw e;
                          ^
Error code 1 for command: /Users/user/git/project/platforms/android/gradlew with args: cdvBuildDebug,-b,/Users/user/git/project/platforms/android/build.gradle,-Dorg.gradle.daemon=true
ERROR building one of the platforms: Error: /Users/user/git/project/platforms/android/cordova/build: Command failed with exit code 1
You may not have the required environment or OS to build this project
Error: /Users/user/git/project/platforms/android/cordova/build: Command failed with exit code 1

 
 

android.support.v4.appがないようです

package android.support.v4.app does not exist
ここによるとライブラリをコピーしちゃえとあったのでコピー!んでplatform配下に持ってきました。

cp -p $ANDROID_HOME/extras/android/support/v4/android-support-v4.jar ${project}/platforms/android/libs/

 
 

気を取り直して(part2)

 
 

$ ionic build android
...
...
なんだかんだで...
...
...
:preDexX86Debug
:dexX86Debug
:processX86DebugJavaRes UP-TO-DATE
:packageX86Debug
:zipalignX86Debug
:assembleX86Debug
:assembleDebug
:cdvBuildDebug

BUILD SUCCESSFUL

Total time: 51.328 secs
Built the following apk(s):

Yeah!!!

 

学んだこと「新しけりゃいいってもんじゃない!」

補足

target=android-22
android.library.reference.1=CordovaLib
cordova.system.library.1=com.android.support:support-v4:+
cordova.system.library.2=com.android.support:support-v4:+
cordova.system.library.3=com.android.support:support-v4:+
cordova.system.library.4=com.google.android.gms:play-services-analytics:+
cordova.system.library.5=com.google.android.gms:play-services-analytics:+
cordova.system.library.6=com.google.android.gms:play-services-analytics:+
cordova.gradle.include.1=cordova-plugin-crosswalk-webview/xxxx-xwalk.gradle

今回なかったやつは、play-services-analyticsが使ってるんかなぁ。
余力のある時に調べてみましょうかね

-技術
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

BitbucketからGithubの移行で、しょうもなくハマる。

こんにちはー。コーテッグのこやまです。 コーテッグはずっとBitbucketを使 …

docomo雑談対話APIを使って会話BOTを作りました。(LINE BOT + Heroku + Rails + docomo雑談API)

こんばんは 前回、LINE BOTを無料で試してみました。heroku + Ra …

no image

【Rails】Railsでsitemap.xmlを作成する

こんにちは Railsでsaitemap.xmlを作成する方法を紹介します。 s …

no image

【Rails】そろそろデバッグしましょうか

どうも中田です。 今までrailsの開発はIDEを使わずテキストエディタだけでや …

no image

【gem/bundle】あんたたち一体どういう関係なのよ!!

どうも中田です。 今回はgemとbundleの話。 前置き よくあるgemの説明 …