Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java com.android.build.transform.api.TransformException_Java_Android_Gradle_Google Play Services_Google Signin - Fatal编程技术网

Java com.android.build.transform.api.TransformException

Java com.android.build.transform.api.TransformException,java,android,gradle,google-play-services,google-signin,Java,Android,Gradle,Google Play Services,Google Signin,我正在尝试集成Google登录,在我的应用程序中,我添加了以下库: compile 'com.google.android.gms:play-services-identity:8.1.0' compile 'com.google.android.gms:play-services-plus:8.1.0' 还将此添加到项目构建渐变中: classpath 'com.google.gms:google-services:1.4.0-beta3' apply plugin: 'com.googl

我正在尝试集成Google登录,在我的应用程序中,我添加了以下库:

compile 'com.google.android.gms:play-services-identity:8.1.0'
compile 'com.google.android.gms:play-services-plus:8.1.0'
还将此添加到项目构建渐变中:

classpath 'com.google.gms:google-services:1.4.0-beta3'
apply plugin: 'com.google.gms.google-services'
还向应用程序构建渐变添加插件:

classpath 'com.google.gms:google-services:1.4.0-beta3'
apply plugin: 'com.google.gms.google-services'
然后添加所需的权限 但当我尝试运行我的应用程序时,收到以下错误:

    Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
    com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: 
    org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0\bin\java.exe'' finished with non-zero exit value 2

尝试将
multiDexEnabled true
添加到你的应用程序build.gradle文件中

 defaultConfig {
    multiDexEnabled true
}
编辑:

先试试史蒂夫的。如果频繁发生或第一步没有帮助,启用多索引可能会有所帮助。对于那些喜欢深入挖掘的人,这里有两个类似的问题(有更多答案):


我只需要清理我的项目,然后它就成功地构建了。

另一件需要注意的事情是,您不使用

compile 'com.google.android.gms:play-services:8.3.0'
这将导入所有播放服务,只需一个helloworld就可以超过单个dexapk的65535方法限制

始终仅指定所需的服务,例如:

compile 'com.google.android.gms:play-services-identity:8.3.0'
compile 'com.google.android.gms:play-services-plus:8.3.0'
compile 'com.google.android.gms:play-services-gcm:8.3.0'

如果您使用的是最新的gradle版本ie
classpath'com.android.tools.build:gradle:1.5.0'和classpath'com.google.gms:google services:1.4.0-beta3'
,那么请尝试从SDK管理器更新最新的支持响应并重建整个项目。

我在android Studio 1.5.1和gradle 1.5.0中也遇到了类似的问题。 我只需要从依赖项中删除不需要的库,这些依赖项可能会自动添加到我的应用程序的build.gradle文件中。 一个是:编译'com.google.android.gms:play services:8.4.0'。 因此,为了获得最佳实践,请尝试只包含特定的播放服务库,如“仅包含广告”

dependencies {
    compile 'com.google.android.gms:play-services-ads:8.4.0'
}
虽然

defaultConfig {
    multiDexEnabled true
}

这也将解决这个问题,但在gradle控制台中提供了大量注释,使得在构建过程中发现其他真正的问题变得很混乱,我使用AS 1.5.1时遇到了相同的问题。但是仅仅清理项目是不行的,所以我尝试了一些东西

  • 清洁工程
  • 重新启动为
  • 同步项目

这对我很有用,所以我希望这能有所帮助。

当我在项目中添加一些新方法时,这个错误开始出现。我知道我还远远没有达到65k方法的极限,如果我能帮助的话,我不想为我的项目启用multiDex支持

我通过增加
:app:transformClassesForDexForDebug
任务的可用内存来解决这个问题。为此,我在
gradle.build
中指定了javaMaxHeapSize

gradle.build

android {
    ...
    dexOptions {
        javaMaxHeapSize "4g" //specify the heap size for the dex process
    }
}
我尝试了这一点,但在解决此问题的其他常见解决方案方面没有成功:

  • 运行项目
    clean
  • 从我的项目中手动删除
    /app/build
    /build
    目录
  • 使Gradle缓存无效并重新启动Android Studio
错误

错误:任务的执行失败 >“:app:transformClassesWithDexForDebug”。 com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:process'命令 “/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/Java” 以非零退出值1结束


注意:增加DEX任务的可用内存可能会导致内存较低的系统出现性能问题

您可以查看

Manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.multidex.myapplication">
    <application
        ...
        android:name="android.support.multidex.MultiDexApplication">
        ...
    </application>
</manifest>

...

当我通过git回滚到旧版本时,我遇到了同样的问题,该版本以前有一个第三方api的.jar库,出于某种原因,原来相同sdk的两个jar,只是不同的版本在/libs文件夹中

如果需要为cordova插件添加此参考,请在plugin.xml文件中添加下一行

<framework src="com.android.support:support-v4:+" />

如果不同的依赖项具有相同的jar,也会导致此生成错误

例如:

compile('com.a.b:library1');
compile('com.c.d:library2');

如果“library1”和“library2”有一个名为
xxx.jar的jar,这将导致这样一个错误。

这发生在我身上是因为Eclipse内存泄漏。我不得不重新启动电脑。

我在gradle中更改了几个PNG和版本号,现在我得到了这个。再多的清洁和重启都没有帮助。禁用即时跑步为我修复了它。YMMV在我的案例中将BuildTools版本从“24”更改为“23.0.2”,解决了这个问题。

我有相同的选择,一旦我关闭Instant run,它在我的API16设备上运行良好,但在API24设备上,它在Instant run上运行良好


希望这能帮助有同样问题的人首先删除中间文件 您的应用程序文件夹\APP\build\mediates 或 清理项目,然后重建

然后再加上

multiDexEnabled true
i、 e


这对我来说很有用

只需进入构建-编辑构建类型-属性选项卡-构建类型版本并将其降级到23.0.1版即可。单击“确定”。 这适用于android studio 1.5。
这对我很管用。

写的答案在gradleput中 默认配置{ 多索引启用真 } 然后清单中的应用程序名称 android:name=“android.support.multidex.MultiDexApplication”
希望这个答案对某些人来说是非常有用的

在我的例子中,出现了异常,因为所有的google play服务扩展都不具有如下相同的版本

 compile 'com.google.android.gms:play-services-plus:9.8.0'
 compile 'com.google.android.gms:play-services-appinvite:9.8.0'
 compile 'com.google.android.gms:play-services-analytics:8.3.0'
当我把这个改成

compile 'com.google.android.gms:play-services-plus:9.8.0'
 compile 'com.google.android.gms:play-services-appinvite:9.8.0'
 compile 'com.google.android.gms:play-services-analytics:9.8.0'
我用下一句话解决了这个问题: 我配置了 在build.gradle中,您需要添加下一个

android {
...
   defaultConfig {
       ...
       // Enabling multidex support.
       multiDexEnabled true
       ...
   }
   dexOptions {
      incremental true
      maxProcessCount 4 // this is the default value
      javaMaxHeapSize "2g"
   }
...
}
dependencies {
...
   compile 'com.android.support:multidex:1.0.1'
...
}
在local.properties中添加下一个

org.gradle.parallel=true
org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
之后,您还需要将多索引添加到应用程序类中

 public class MyApplication extends MultiDexApplication {

   @Override
   public void onCreate() {
       super.onCreate();
       //mas codigo
   }

   @Override
   protected void attachBaseContext(Context base) {
       super.attachBaseContext(base);
       MultiDex.install(this);
   }
}
不要忘记将行代码添加到Manifest.xml中

<application
    ...
    android:name=".MyApplication"
    ...
/>

仅此而已,这足以解决该缺陷: 任务“:app:transformClassesWithDexForDebug”的执行失败。
使用javaMaxHeapSize“2g”和local.properties org.gradle.jvmargs=-Xmx2048m很好地检查build.gradle。这段代码解决了这个问题

defaultConfig {
        multiDexEnabled true
}
最简单的方法
dexOptions {
        javaMaxHeapSize "4g" 
    }
defaultConfig {
    multiDexEnabled true
}
org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m
compile 'com.android.support:multidex:1.0.1'
android {
    //...
    buildToolsVersion '26.0.2' // change from '23.0.2'
    //...
}