問題タブ [android-gradle-3.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
376 参照

android - Android Studio 3.0 で Android Gradle Plugin 3.0.0 を使用すると、Android マルチ プロジェクト テストの依存関係のセットアップが中断する

Android gradle プラグイン 2.3.3 から 3.0 に移行しようとしています。src/test/javaProjectB のテストが ProjectAのテスト クラスを使用する 2 つのプロジェクトをセットアップしました。Android gradle プラグイン 2.3.3 を使用しているときに、次の設定を使用してこれを実現します -

プロジェクトA build.gradle-

プロジェクトB build.gradle-

ご覧のとおり、最初に Artificat 構成を使用して ProjectA のすべてのテスト クラスを Jar しようとしており、後でその構成を ProjectB で使用しています。Android gradle pluign 2.3.3 を使用している間、これは期待どおりに機能していました。

AGP 3.0 に移行するとき、私の ProjectAは同じままですが、このように代わりに使用するようにbuild.gradleprojectB を変更しました-build.gradletestImplementationtestCompile

これは正常にコンパイルされますが、ProjectA のテスト クラスを利用する ProjectB でテストを実行しているときに、ClassNotFoundExceptionProjectA のテスト クラスを取得します。さらに、これはJunit実行構成を使用してAndroid Studioでテストを実行しているときにのみ発生し、ClassNotFoundExceptionコマンドラインからテストを実行するときには発生しません。

それを機能させようとしているときに、何が間違っているのかわかりません。だから助けてください!

0 投票する
1 に答える
438 参照

android - Android マニフェスト マージの問題 - Google 広告の gradle 依存関係を削除しても、その AndroidManifest.xml ノードが削除されない

プロジェクトには 2 つの製品フレーバーがあります (1) 無料 (2) プロ

以下のように、無料の製品フレーバーにのみGoogle広告ライブラリを含めています

ここで、別の広告ライブラリに置き換えたいと考えています。この依存関係を削除しようとしていますが、ライブラリが完全に削除されず、次のようなエラーが表示されます。したがって、プロジェクトをビルドできません。

ここに画像の説明を入力

スクリーンショットは、.xml の AndroidManifest.xml のものapp\build\intermediates\manifests\full\free\debugです。また、これら 2 つのアクティビティ ( com.google.android.gms.ads.AdActivity& com.google.android.gms.ads.purchase.InAppPurchaseActivity) をメインの AndroidManifest.xml に手動で追加していません。

AndroidManifest.xml からこれら 2 つのアクティビティを削除しようとしたのは

  1. クリーン、ビルド、リビルド
  2. Android Studio を再起動します
  3. キャッシュの無効化 / Android Studio の再起動
  4. プロジェクトのフレーバーの変更とクリーニング。
  5. Android Studio の「プロジェクト構造」から依存関係を削除する

しかし、何も機能していないようです。これらのエラーを取り除き、プロジェクトをビルドするにはどうすればよいですか?

0 投票する
0 に答える
483 参照

android - Androidエミュレーターは、起動してapkをインストールするのを待ちます

armeabi-v7aエミュレーターを起動し、gradle connectedAndroidTestタスクを実行してアプリを対象とした Android デバイス テストを実行するスクリプトを開発しようとしています。

必要なエミュレーターのターゲットを正常にチェックし、見つからない場合はダウンロードしてインストールし、エミュレーターを起動するスクリプトを作成しました。これらすべての点がうまく機能します。しかし、エミュレータを起動した後、完全に起動するまで待たなければなりません。

私の問題は、エミュレーターがブート操作を完全に終了し、アプリをインストールする準備ができていることを正当に検出できないことだと思います。

Web の提案によると、次の 2 つのシステム プロパティを使用して完全な起動を検出できます。

init.svc.bootanim- 起動アニメーションの状態 sys.boot_completed- 起動操作のシステム状態

電話で修正できます

adb -e shell getprop init.svc.bootanimそれにadb -e shell getprop init.svc.bootanim応じて

sys.boot_completedよりも信頼性が高いことがわかりましたinit.svc.bootanimが、とにかく両方を待ちます。しかし、デバイスの起動を待っconnectedAndroidTestてから約4分間実行した後にタスクを開始すると、次の例外で失敗するため、役に立ちません。

でも、ちょっと待てば完成。これは、テストアプリをインストールする前に何かを待たないことを意味すると思います。

エミュレーターの起動を待っている間、何を頼りにできるか考えていますか?