問題タブ [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.
android - Android Studio 3.0 で Android Gradle Plugin 3.0.0 を使用すると、Android マルチ プロジェクト テストの依存関係のセットアップが中断する
Android gradle プラグイン 2.3.3 から 3.0 に移行しようとしています。src/test/java
ProjectB のテストが 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.gradle
projectB を変更しました-build.gradle
testImplementation
testCompile
これは正常にコンパイルされますが、ProjectA のテスト クラスを利用する ProjectB でテストを実行しているときに、ClassNotFoundException
ProjectA のテスト クラスを取得します。さらに、これはJunit実行構成を使用してAndroid Studioでテストを実行しているときにのみ発生し、ClassNotFoundException
コマンドラインからテストを実行するときには発生しません。
それを機能させようとしているときに、何が間違っているのかわかりません。だから助けてください!
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 つのアクティビティを削除しようとしたのは
- クリーン、ビルド、リビルド
- Android Studio を再起動します
- キャッシュの無効化 / Android Studio の再起動
- プロジェクトのフレーバーの変更とクリーニング。
- Android Studio の「プロジェクト構造」から依存関係を削除する
しかし、何も機能していないようです。これらのエラーを取り除き、プロジェクトをビルドするにはどうすればよいですか?
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分間実行した後にタスクを開始すると、次の例外で失敗するため、役に立ちません。
でも、ちょっと待てば完成。これは、テストアプリをインストールする前に何かを待たないことを意味すると思います。
エミュレーターの起動を待っている間、何を頼りにできるか考えていますか?