【问题标题】:FLAVOR: run from Android Studio fails - run from device worksFLAVOR:从 Android Studio 运行失败 - 从设备运行运行
【发布时间】:2016-12-01 17:40:00
【问题描述】:

我正在尝试在不同的风格中使用相同的 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();
    }
}

现在...
对于我运行的每种口味(使用其build variant),按 A.S. “绿色播放按钮”会发生以下情况:
1. 构建 + 编译成功结束。
2.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.按下刚刚安装的图标时(=正在运行从设备) - 一切正常,应用程序按照要求运行 - 每次安装都有自己的风格。

这对于调试和流畅的开发来说太糟糕了...
我应该怎么做才能通过 A.S 运行每种风味及其变体?

谢谢:)

【问题讨论】:

    标签: android android-studio android-manifest build.gradle android-flavors


    【解决方案1】:

    一切看起来都很好。看到您的日志默认活动无法加载,这意味着您忘记将 Intent-Filter 添加到您在 Android Manifest.xml 中注册的第一个活动中。

             <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>
    

    【讨论】:

    • 我已经在清单上有这些行,我现在将添加它们。有什么新建议吗?
    【解决方案2】:

    嗯,这个问题很容易解决。
    为了直接从 Android Studio 运行每种风格,我必须在 Run -> Edit Configurations -> Android Application
    下声明 Specified Activity 您想直接从 Android Studio 运行的每种风格都需要此解决方案。

    【讨论】:

      猜你喜欢
      • 2019-09-11
      • 2022-12-02
      • 2018-10-28
      • 1970-01-01
      • 2016-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-12
      相关资源
      最近更新 更多