标签: android-gradle-2.0

即时运行java.lang.OutOfMemoryError:超出GC开销限制

我已经升级到Android Studio 2.1,当我尝试构建和运行我的企业大项目时,我遇到了这个错误:

任务':app:transformClassesWithDexForMyAppDebug'的执行失败.com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:java.lang.OutOfMemoryError:GC开销超过限制

我已经搜索了论坛并禁用了即时运行,也写入了我的build.gradle:

dexOptions {
    incremental true
    javaMaxHeapSize "6g"
}
...
dependencies{
    compile 'com.android.support:multidex:'
}
Run Code Online (Sandbox Code Playgroud)

但它无法解决我的问题.我在gradle中启用了multidex,因为没有它我得到了错误:

com.android.dex.DexIndexOverflowException:方法ID不在[0,0xffff]中:65536

所以这是它的解决方案,它之前的Android Studio版本(也适用于公司的其他人,使用的是Android Studio 1.4-2.0),但是在我升级Android Studio之后却没有.

有谁知道会导致什么问题?

有趣的是,如果我只是做项目我没有得到错误,只有当我尝试运行它.任何想法都表示赞赏!

编辑1:

有趣的是,如果我重启我的android工作室,比第一次运行成功,但第二次运行不成功.

编辑2:

如果我将堆大小设置为更大(比如8-10g),那么应用程序甚至不会在第一次运行时编译.

编辑3:

似乎问题是即时运行,如果我强迫android studio不使用它(比如一次部署到两个设备或更改gradle.properties,如答案)错误消失.

android android-build android-studio android-gradle-2.0 android-instant-run

15
推荐指数
1
解决办法
1万
查看次数

使用AS 2.0和gradle 2.0首次运行所花费的时间

最近我已经升级Android Studio,从1.52.0.

随着我正在使用 gradle 2.0.0

classpath 'com.android.tools.build:gradle:2.0.0'
Run Code Online (Sandbox Code Playgroud)

但是它似乎有些问题,每当我第一次运行我的应用程序时,它会显示/黑屏10-15秒.

我在applicationClass或启动器活动上没有做任何事情,但是它也花了这么多时间.

我不知道这是否是问题与AS 2.0Gradle 2.0.0.奇怪的是它在模拟器上正常工作,它只是花时间在设备上.因此可能存在设备RAM或处理问题,但我已经在10-12个设备中检查了它,并且所有设备都有相同的问题.

当我第一次运行我的应用程序时,然后它像往常一样工作并在几分之一秒内加载启动器活动时出现问题.

有人可以帮我吗?

android android-studio-2.0 android-gradle-2.0

14
推荐指数
1
解决办法
465
查看次数

如何为本地.aar库设置transitive = true?

我在我的DemoApp项目中使用android cuckoo.aar本地android库.

这个cuckoo库还通过Gradle依赖项使用了许多其他库,例如(retrofit,recyclerview,rx-android,rx-java).

当我在DemoApp中导入这个cuckoo库时,我需要在我的demoApp中添加库中使用的所有依赖项.

有一种解决方案是在gradle中使transitive = true.但它没有帮助我.

有人可以帮我正确地实现这一目标.

android android-library android-gradle-plugin android-gradle-2.0

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

gradle 2.0.0和DataBinding的问题

最近我已经将Android工作室从1.5.1更新到2.0,更新后它要求我使用最新的gradle ie com.android.tools.build:gradle:2.0.0

dependencies {
    classpath 'com.android.tools.build:gradle:2.0.0'
    classpath "com.android.databinding:dataBinder:1.0-rc1"
}
Run Code Online (Sandbox Code Playgroud)

但更新后,它显示DataBinding插件的错误.

apply plugin: 'com.android.databinding' //error on this line
Run Code Online (Sandbox Code Playgroud)

错误信息 :

Error:(2, 0) Cause: org/apache/commons/lang3/StringUtils
Open File
Run Code Online (Sandbox Code Playgroud)

我没有使用任何apache库或任何deprected apache类.

更新:

Harshad的回答帮助了我,所以最后的结论是我们不需要添加这些插件 gradle 2.0.+

classpath "com.android.databinding:dataBinder:1.0-rc1" 删除
apply plugin: 'com.android.databinding' 删除

android android-databinding android-studio-2.0 android-gradle-2.0

5
推荐指数
1
解决办法
1158
查看次数

Android:buildTypes applicationIdSuffix错误

我想设置一个项目来构建两个可以安装在同一设备上的不同apks - 其中一个是生产apk,第二个是调试apk.为此,我在build.gradle中定义了:

buildTypes {
        release {

        }

        debug {
            applicationIdSuffix = ".debug"
        }

    }
Run Code Online (Sandbox Code Playgroud)

但是当我尝试同步gradle时,我得到错误:

Error:org.gradle.api.GradleException: No matching client found for package name 'mypkg.debug'
Run Code Online (Sandbox Code Playgroud)

除了build.gradle的buildTypes部分之外,我还应该做些什么来使其正常工作?

android build.gradle android-gradle-plugin android-build-type android-gradle-2.0

5
推荐指数
1
解决办法
1957
查看次数

是否需要导入support-v4和appcompat-v7才能使用它们?

我正在使用AppCompatActivity和更多像碎片等的东西......这些是我的活动的一些导入:

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.GravityCompat;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
Run Code Online (Sandbox Code Playgroud)

我从谷歌样本中复制了这些依赖项:

dependencies {
    compile 'com.google.android.gms:play-services-ads:9.4.0'
    compile 'com.android.support:support-v4:23.1.1'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:design:23.4.0'
}
Run Code Online (Sandbox Code Playgroud)

现在我想删除它们,我注意到我可以删除它们:

compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:appcompat-v7:23.4.0'
Run Code Online (Sandbox Code Playgroud)

删除它们,我的项目完美运作......为什么?

我正在编译:

compileSdkVersion 23
buildToolsVersion "23.0.3"
minSdkVersion 14
targetSdkVersion 22
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-support-library android-gradle-plugin android-gradle-2.0

5
推荐指数
1
解决办法
2064
查看次数