gpt4 book ai didi

android - Instabug for Android 构建警告

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:02:11 27 4
gpt4 key购买 nike

我们有一个包含 4 个模块的 gradle 项目:1 个库模块和 3 个 android 应用程序。为了构建我们的应用程序,我们使用 circleCI。在 this 之后,我们还禁用了 circleCI 构建的 predex-ing指导。

一切都很好,直到我将 Instabug 添加到我们的一个项目中。从那以后,我们一直在达到 circleCI 4GB 的限制。最重要的是,将 Instabug 作为依赖项的项目将启动 preDex gradle 任务,无论如何。要开始新构建,我们使用以下命令:./gradlew assembleDebug -PpreDexEnable=false

使用 Instabug 的项目在构建时会收到一些警告,如下所示:

Ignoring InnerClasses attribute for an anonymous inner class (com.instabug.library.b) that doesn't come with an associated EnclosingMethod attribute. This class was probably produced by a compiler that did not target the modern .class file format. The recommended solution is to recompile the class from source, using an up-to-date compiler and without specifying any "-target" type options. The consequence of ignoring this warning is that reflective operations on this class will incorrectly indicate that it is not an inner class.

我假设由于为“Instabug 项目”启动的 preDex 任务,我们将达到 4 GB 的限制。

有人知道发生了什么事吗?

编辑:gradle 文件

root build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
classpath 'de.hannesstruss:godot:0.2'
classpath 'com.github.ben-manes:gradle-versions-plugin:0.11.3'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

apply plugin: 'de.hannesstruss.godot'
apply plugin: 'com.github.ben-manes.versions'
apply from: 'dependencies.gradle'

def ciServer = 'CI'
def executingOnCI = "true".equals(System.getenv(ciServer))

ext {
// preDexEnable property will come from the command line when circleCI is building the project.
if (project.hasProperty('preDexEnable')) {
project.ext.preDexLibs = project.properties['preDexEnable'].equals('true')
} else {
project.ext.preDexLibs = true // pre dexing should be true by default
}

buildTime = new Date().format("yyyy-MM-dd'T'HH:mm'Z'", TimeZone.getTimeZone("UTC"))

developmentFlavor = {
applicationId "${project.ext.appId}.${name}"
versionName "${project.ext.verName}-${name}"
minSdkVersion 15
buildConfigField "String", "API_TYPE", "\"${name}\""
resValue "string", "tray__authority", "${applicationId}.tray"
}

defaultLibraryFlavorConfig = {
targetSdkVersion 22
versionCode project.ext.verCode
versionName project.ext.verName

multiDexEnabled true

buildConfigField "String", "GIT_SHA", "\"${project.ext.gitSha}\""
buildConfigField "String", "BUILD_TIME", "\"${buildTime}\""
}

defaultFlavorConfig = defaultLibraryFlavorConfig << {
applicationId project.ext.appId
resValue "string", "tray__authority", "${applicationId}.tray"
}

defaultAndroidConfig = {
compileSdkVersion 22
buildToolsVersion "22.0.1"

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}

dexOptions {
javaMaxHeapSize executingOnCI ? "2048m" : "4g"
jumboMode true
}

packagingOptions {
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LGPL2.1'
exclude 'META-INF/services/javax.annotation.processing.Processor'
}

lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
}
}

subprojects {
repositories {
maven { url "http://dl.bintray.com/populov/maven" }
jcenter()
}

project.ext.gitSha = 'git rev-parse --short HEAD'.execute([], project.projectDir).text.trim()

project.plugins.whenPluginAdded { plugin ->
if ("com.android.build.gradle.AppPlugin".equals(plugin.class.name)) {
project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
} else if ("com.android.build.gradle.LibraryPlugin".equals(plugin.class.name)) {
project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
}
}
}

依赖关系.gradle

ext {
kiosk = [
dependencies: {
compile project(':common')

compile libraries.multidex
compile libraries.viewPagerIndicator
compile libraries.recyclerview
compile libraries.volley
compile libraries.instabug
compile libraries.mixpanel
compile libraries.loadToast
compile(libraries.crashlytics) {
transitive = true;
}

compile libraries.dagger
apt libraries.daggerCompiler
provided libraries.javaxAnnotations
}
]
}

kiosk 模块 build.gradle

buildscript {
repositories {
maven { url 'https://maven.fabric.io/repo' }
jcenter()
}

dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.6'
classpath 'io.fabric.tools:gradle:1.+'
}
}

repositories {
maven { url 'https://maven.fabric.io/public' }
maven { url 'http://archiva.instabug.com/repository/release' }
maven { url "https://jitpack.io" }
}

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
apply plugin: 'io.fabric'

// Manifest version information!
def versionMajor = 1
def versionMinor = 0
def versionPatch = 0
def versionBuild = 0 // bump for dogfood builds, public betas, etc.

ext.verCode = versionMajor * 10000 + versionMinor * 1000 + versionPatch * 100 + versionBuild
ext.verName = "${versionMajor}.${versionMinor}.${versionPatch}"

ext.appId = 'care.smart.android.kiosk'

android defaultAndroidConfig << {

defaultConfig defaultFlavorConfig << {
minSdkVersion 21
buildConfigField "String", "APP_NAME", "\"Android-Kiosk\""
}

productFlavors {
realProduction {
buildConfigField "String", "API_TYPE", '"prod"'
}

// dev developmentFlavor

}


}

dependencies kiosk.dependencies

最佳答案

这个问题我没有真正的答案。但是 preDex 任务是由于 minSdkVersion 21 而创建的。此外,我们不能将 RAM 限制在 4GB,因此我们不得不将其增加到 6GB。

关于android - Instabug for Android 构建警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31519990/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com