3

activity異なるフレーバーで同じ名前を持ち、各フレーバーに適した名前をインストールしようとしています。

build.gradle :

android {
    ....
    buildscript {
        productFlavors {
            flavor1 {
                applicationId "com.example.MyApp.flavor1"
            }
            flavor2 {
                applicationId "com.example.MyApp.flavor2"
            }
            flavor3 {
                applicationId "com.example.MyApp.flavor3"
            }
        }
    }   
}

AndroidMANifest.xml :

<activity
        android:name="${applicationId}.LaunchActivity"
        android:noHistory="false" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data
                android:host="*"
                android:path="*"
                android:scheme="@string/app_scheme_name" />
        </intent-filter>
...
<\activity> 

そして、すべてのflavorX.javaは次のようになります:

package com.example.MyApp.flavorX;

import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

import com.example.MyApp.MainActivity;

public class LaunchActivity extends MainActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        String flavor = "~~~ flavorX ~~~~";
        Log.i("flavor", flavor);
        super.onCreate(savedInstanceState);
        Toast.makeText(this, flavor,Toast.LENGTH_SHORT).show();
    }
}

今... ASの「緑色の再生ボタン」を押して
実行するすべてのフレーバーについて、これらのことが起こります: 1.ビルド+コンパイルが正常に終了します。2.ビュー タブで、次のメッセージが表示されます。build variant

Run

    Installing com.example.MyApp.flavorX
    DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/com.example.MyApp.flavorX"
    pkg: /data/local/tmp/com.example.MyApp.flavorX
    Success
    Could not identify launch activity: Default Activity not found

3.アプリは正しいアイコンと名前でデバイスにインストールされています。
4.インストールされたばかりの (= デバイスから実行されている) アイコンを押すと、すべて問題なく、アプリは要求どおりに動作します。インストールごとに独自のフレーバーがあります。

これは、デバッグと流暢な開発にとってひどいことです...
AS を介して各フレーバーをそのバリアントで実行できるようにするにはどうすればよいですか??

ありがとう :)

4

2 に答える 2

0

さて、問題は非常に簡単に解決されます。Android Studio から各フレーバーを直接実行するには、 [実行] -> [構成の編集] -> [Android アプリケーション]で
宣言する 必要がありました。このソリューションは、Android Studio から直接実行するすべてのフレーバーに必要です。Specified Activity

于 2016-08-16T07:18:24.457 に答える
0

すべてがうまく見えます。ログのデフォルト アクティビティを読み込めませんでした。これは、Android Manifest.xml に登録した最初のアクティビティに Intent-Filter を追加するのを忘れていることを意味します。

         <activity
            android:name=".YourFirstActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.Main">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
于 2016-07-27T15:44:30.680 に答える