标签: android-productflavors

travis.ci上的Android构建变体

我目前有一个使用gradle并与travis.ci集成的Android项目,它有不同的productFlavors和buildTypes.当然后在travis.ci上执行"connectedCheck"任务时,它会尝试打包所有构建变体(所有类型和类型的组合).其中一些失败,因为发布版本需要密码输入,我现在无法自动化.有没有办法告诉travis.ci只构建和测试Android项目的某个构建变体?

continuous-integration android gradle travis-ci android-productflavors

6
推荐指数
2
解决办法
922
查看次数

具有解析推送通知的Android Gradle产品风味

我正在尝试通过Parse发送推送通知并集成产品风格.当我实现产品风味时,我无法接收Parse推送通知.有没有人有任何关于纠正这个问题的建议

Gradle app文件:

apply plugin: 'com.android.application'

android {
compileSdkVersion 19
buildToolsVersion "21.1.2"

defaultConfig {
    applicationId "com.example.project"
        minSdkVersion 16
        targetSdkVersion 21

}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}
productFlavors{
    freeApp{
        applicationId "com.example.project.free"

    }
    premiumApp{
        applicationId "com.example.project.paid"
    }
}
}

dependencies {
compile files('libs/android-async-http-1.4.2-66-g4b6eb97.jar')
compile files('libs/android-support-v13.jar')
compile files('libs/bolts-android-1.2.0.jar')
compile files('libs/Parse-1.9.2.jar')
compile files('libs/ParseCrashReporting-1.9.2.jar')
}
Run Code Online (Sandbox Code Playgroud)

Android Manifest

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.project"
android:versionCode="1"
android:versionName="1.1" >

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission …
Run Code Online (Sandbox Code Playgroud)

android push-notification parse-platform android-gradle-plugin android-productflavors

6
推荐指数
2
解决办法
1151
查看次数

Android多功能库模块用于应用程序模块

我试图建立一个项目,该项目依赖于使用“ .so”文件的库模块。

到目前为止,我有:

库模块

  • .so文件进入jniLib:armeabi,armeabi-v7a和x86。
  • 这是用于配置的Android.mk文件:
#版权所有(C)2010 The Android Open Source Project
#
#根据Apache许可证2.0版(“许可证”)获得许可;
#除非符合许可,否则您不得使用此文件。
#您可以在以下位置获得许可的副本
#
#http://www.apache.org/licenses/LICENSE-2.0
#
#除非适用法律要求或书面同意,否则软件
根据许可协议分发的#是按“原样”分发的,
#没有任何明示或暗示的保证或条件。
#有关特定语言的管理权限,请参阅许可证。
#许可中的限制。

LOCAL_PATH:= $(调用my-dir)

包括$(CLEAR_VARS)

#在这里我们给出模块名称和源文件

LOCAL_MODULE:=我的模块
LOCAL_SRC_FILES:= $(TARGET_ARCH_ABI)/my-lib.so
LOCAL_EXPORT_C_INCLUDES:= $(LOCAL_PATH)/ include
包括$(PREBUILT_SHARED_LIBRARY)
  • 这是build.gradle文件:
应用插件:“ com.android.library”

android {
    编译版本23
    buildToolsVersion“ 23.0.2”

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 23
        版本代码1
        versionName“ 1.0”
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    buildTypes {
        发布 {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
        }
    }

    sourceSets.main.jni.srcDirs = [] //禁用自动ndk-build调用

    //默认情况下,将发布样式设置为
    defaultPublishConfig“ X86Debug”
    publishNonDefault true

    productFlavors …

android module static-libraries gradle android-productflavors

6
推荐指数
0
解决办法
1253
查看次数

处理Proguard,MultiDex,测试和产品口味时,有什么好的策略?

我有一个引用~100K方法的应用程序,最小Sdk = 16

这是2个组装选项:

  • Proguard将这一系列方法缩减为仅44K方法
  • 使用Multi Dex

现在我有一些常见的用例:

  1. 在模拟器和设备上运行和调试
    • 它需要尽可能快
  2. 做测试(集成和UI)
    • 它需要运行(我有一些问题运行Espresso与MultiDex)
  3. 制作Prod APK
    • 它需要尽可能可靠和缩小

你有人对组装策略有一些建议吗?

3/Prod

  • 使用Proguard减少APK大小
  • 使用Proguard进行混淆
  • 尽量不要使用Multidex(可能会失败)

2 /测试

  • 使用minSdkVersion 21(我读到从21开始启用pre-dexing,节省时间)
  • ???

1 /调试

  • 使用minSdkVersion 21(我读到从21开始启用pre-dexing,节省时间)
  • ???

这是Gradle文件:

    productFlavors {
        dev {
            minSdkVersion 21
            multiDexEnabled ???
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        prod {
            // The actual minSdkVersion for the application.
            minSdkVersion ANDROID_BUILD_MIN_SDK_VERSION
            multiDexEnabled false
        }
    }
    defaultConfig {
        applicationId "xxxx"
        targetSdkVersion ANDROID_BUILD_TARGET_SDK_VERSION
        minSdkVersion ANDROID_BUILD_MIN_SDK_VERSION
        versionCode ANDROID_BUILD_VERSION_CODE
        versionName ANDROID_BUILD_APP_VERSION_NAME
    }

    buildTypes {
        release {
            debuggable false
            ext.enableCrashlytics = true
            renderscriptOptimLevel …
Run Code Online (Sandbox Code Playgroud)

android proguard gradle android-productflavors android-multidex

6
推荐指数
1
解决办法
1066
查看次数

将风味配置保存在单独的.gradle文件中

简短 - 是否有办法将风味配置保存在单独的.gradle文件中?

有关更多详细信息 - 我希望将每个风格.gradle文件(如flavorGermany.gradle,flavorUkraine.gradle,flavorItaly.gradle等)与'apply from:'指令一起包含在main gradle中.每个flavor .gradle都包含签名和构建配置.

android gradle android-productflavors android-build-flavors android-flavors

6
推荐指数
1
解决办法
835
查看次数

如何匹配Android Gradle项目依赖项的构建类型?

我有一个包含2个模块的项目:libraryapp

library模块当然是一个库,仅具有releasedebug构建类型。

app模块具有4种口味以及releasedebug构建类型,总共提供8种构建变体。它还声明了对library模块的依赖关系,如下所示:

compile project(path:':library', configuration:'release')

我希望能够library根据应用程序的build变体设置配置:releasebuild变体应使用release库的版本,debugbuild变体应使用debug库的版本。

显而易见的答案是列出这8个变体中的每一个,并进行适当的配置并且可以正常工作,但这并不是最佳的答案:这很丑陋,会使构建脚本过于混乱。

我已经尝试了一些方法project.configurations.all{}applicationVariants.all{},但我无法找到一个明确的方法来设置相关性配置。

有没有更清洁的方法可以做到这一点?

android gradle android-gradle-plugin android-productflavors

6
推荐指数
1
解决办法
599
查看次数

Android studio 3.0构建变体与风格不匹配

我正在尝试为Android Studio 3.0和gradle插件3.0设置不同的构建变体,但Android Studio不会为每个我的风格创建构建变体.Gradle构建是成功的但我不知道如何制作productionapiRealese和germanyapiRelease构建变体.我该怎么做?

我的口味:

flavorDimensions "pr", "ger"
productFlavors {
    productionapi {

        provider "pk"
        dimension "pr"

    }
    germanyapi {
        provider "sd"
        dimension "ger"
    }
}
Run Code Online (Sandbox Code Playgroud)

我的构建变体:

在此输入图像描述

android gradle android-studio android-productflavors android-studio-3.0

6
推荐指数
1
解决办法
1459
查看次数

NDK支持不同的产品风味

我想从ndk库中获取不同的 字符串 .因为我有两个风味演示和现场我想要价值"你好我来自演示"的演示风味和现场风味我想"你好我来自现场"

这是我的java文件代码

public class MainActivity extends AppCompatActivity {
    // Used to load the 'native-lib' library on application startup.
    static {
        System.loadLibrary("native-lib");
    }

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Example of a call to a native method
    TextView tv = (TextView) findViewById(R.id.sample_text);
    tv.setText(stringFromJNI());
}

/**
 * A native method that is implemented by the 'native-lib' native library,
 * which is packaged with this application.
 */
public native String stringFromJNI();
Run Code Online (Sandbox Code Playgroud)

}

这是我的cpp文件代码

#include <jni.h>
#include …
Run Code Online (Sandbox Code Playgroud)

c++ java android android-ndk android-productflavors

6
推荐指数
2
解决办法
1966
查看次数

Flutter - 根据 Android 产品风格设置目标文件

目前我正在使用Flutter来构建我的应用程序。

背景

我遵循了一些关于构建不同环境条目文件的指南:
https : //iirokrankka.com/2018/03/02/separating-build-environments/
它创建main_dev.dartmain_prod.dart.

我还学会了为 iOS 和 Android 构建风味:https : //medium.com/@salvatoregiordanoo/flavoring-flutter-392aaa875f36
现在我可以--flavor <FLAVOR>在命令中使用它来构建不同的风味应用程序。

现在我在尝试结合两种技能时遇到了一个问题。


目标结果

以下是我想要实现的目标:

development风味->main_dev.dart入口文件
production风味->main_prod.dart入口文件


遇到问题

在 iOS 端,我可以在 .xcconfig 文件中定位入口文件,如下所示:

// ios/Flutter/development.xcconfig

#include "Generated.xcconfig"

FLUTTER_TARGET=lib/main_dev.dart
Run Code Online (Sandbox Code Playgroud)

我知道我可以-t lib/main_dev.dartflutter run命令后添加。
但是我想问一下是否有任何解决方案可以
在Android端的flavor config中设置flutter目标文件?

感谢任何帮助。

android android-productflavors flutter

6
推荐指数
1
解决办法
2021
查看次数

Flutter:将口味配置添加到 Visual Studio

我的颤振应用程序有不同的风格。在 Android Studio 中,所有内容都在风味配置面板中进行设置,但是在 Visual Studio Code 中我可以在哪里进行设置?

我想我必须编辑 configuration.json,但我在网上找不到任何关于如何做的参考。

我不想每次都打字 flutter run --flavor app1 -t lib/main_app1.dart

dart android-productflavors visual-studio-code flutter

6
推荐指数
2
解决办法
2504
查看次数