1

継続的インテグレーションに Travis-ci を使用する Android プロジェクトを GitHub で入手しました。

ビルドは現在失敗しており、エミュレーターの logcat を表示して、自動ビルド中に発生した問題の詳細を確認する必要があります。

私は両方を追加しようとしました:

after_failure:
  - adb logcat 

after_script:
  - adb logcat 

ただし、両方のコマンドが実行されることはありません。

おそらくこれは、実際のスクリプトが実行される前にコマンドを実行し、両方のコマンドが実行されない travis-ci Java プロジェクトのビルドが原因mvn installです...私は本当に立ち往生しています。どんな助けでも大歓迎です。

4

2 に答える 2

1

もう必要ないと思いますが、質問に答えようと思います。

フラグを追加する必要--allがあります。そうしないと、これらのパッケージは利用できませんでした。

Google は-p --obsoleteフラグを廃止し、提案された (新しい) パッケージのみが-a --allフラグなしで利用可能になりました。

欠落しているビルド ツールを参照してください - 56 行目

 echo "y" | android update sdk --filter platform-tools,build-tools-17.0.0,android-16,extra-android-support,$ANDROID_SDKS --no-ui --force > /dev/null
Error: Missing platform-tools
Error: Missing platform-tools
Error: Ignoring unknown package filter 'build-tools-17.0.0'

現在、最新のプラットフォーム ツールは--allフラグなしで常に推奨されますが、次のようになります。

$ ./android update sdk -u -t build-tools-17.0.0
Error: Ignoring unknown package filter 'build-tools-17.0.0'
Warning: The package filter removed all packages. There is nothing to install.
         Please consider trying to update again without a package filter.
$ ./android update sdk -a -u -t build-tools-17.0.0
Packages selected for install:
- Android SDK Build-tools, revision 17

おそらく、build-tools と android-17 プラットフォームの欠如が、Properties file not found の原因です。

ここで travis-lint の回避策を見ましたが、私は使用しません。


これは私がログに使用している現在の回避策であり、改善する必要がありますが、-eエミュレーターでは機能します。をカスタマイズする必要がありますMOD_NAME

# adb -e: direct an adb command to the only running emulator. Return an error if more than one.

before_script:   
  # - echo 'LOGCAT'   
  # Check logcat debug output: http://developer.android.com/tools/help/logcat.html
  # Check debugging log: http://developer.android.com/tools/debugging/debugging-log.html
  # Comment the lines belows to debug output and redirect it to a file. Custom tags for your app.
  - adb -e logcat *:W | tee logcat.log > /dev/null 2>&1 &

after_failure:
  # - echo 'FAILURE'
  # Check apt configuration: http://docs.travis-ci.com/user/ci-environment/#apt-configuration
  # Comment out the lines below to show log about tests with app name customized on exports section.
  - sudo apt-get install -qq lynx
  - export MOD_NAME=yourappmodulename
  - export LOG_DIR=${TRAVIS_BUILD_DIR}/${MOD_NAME}/build/outputs/reports/androidTests/connected/
  - lynx --dump ${LOG_DIR}com.android.builder.testing.ConnectedDevice.html > myConnectedDevice.log
  - lynx --dump ${LOG_DIR}com.android.builder.testing.html > myTesting.log
  - for file in *.log; do echo "$file"; echo "====================="; cat "$file"; done || true

after_script:
  # Uncomment the line below to kill adb and show logcat output.
  - echo " LOGCAT "; echo "========"; cat logcat.log; pkill -KILL -f adb

コンテナーベースのインフラストラクチャを使用して使用できず、実際には連結ファイル用であるlynxため、事前にインストールされた代替手段を探しています。sudocat

于 2014-11-28T06:58:16.497 に答える
0

いくつかの追加の試行の後、次のいずれかを介して logcat を取得できます。

 #build 25
 #run all tests 
  - mvn clean install -DskipTests=false
 #build 26
  - adb logcat &

before_install tr​​avis フェーズで。

Travis の mvn install -DskipTests=true をバイパスします。それにもかかわらず、通常のビルド中に logcat を取得する方法がありませんでした。何か案が ?

于 2013-03-26T19:41:48.843 に答える