错误:任务':app:dexDebug'的执行失败。 Parse.com

时间:2015-12-01 06:45:07

标签: android parse-platform

  

错误:任务':app:dexDebug'执行失败。

     
    

com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'命令     'C:\ Program Files \ Java \ jdk1.8.0_25 \ bin \ java.exe''已完成     非零退出值2

  

我的项目没有与parse连接,我已经按照parse.com docs中给出的所有步骤进行了操作。我已尝试将新项目和现有项目连接到解析,但它没有连接。

Gradle build在4s 824ms内完成了1个错误。

下面是我现有的项目mainActivity.java onCreate code:

@Override
protected void onCreate(Bundle savedInstanceState) {

    Parse.enableLocalDatastore(this);

    Parse.initialize(this, "8R4nAHgdPDJ422tuZyHNE2Hjp3F50y4pSlO9sA1b", "qJomEl0uICAsg7uwiDvxEtWlTWovb3S01N8a3XNr");


    ParseObject testObject = new ParseObject("TestObject");
    testObject.put("foo", "bar");
    testObject.saveInBackground();


    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });
}

以下是依赖项的gradel代码:

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.android.support:design:23.1.0'
compile 'com.parse.bolts:bolts-android:1.+'
compile 'com.parse:parse-android:1.+'
}

以下是用于询问/检查互联网连接的AndroidManifest.xml代码:

    

我还在我的libs中包含了Parse-1.11.0.jar。

3 个答案:

答案 0 :(得分:2)

从您的gradle文件中删除以下行

compile fileTree(dir: 'libs', include: ['*.jar'])

因为你已经在这里了

compile 'com.parse.bolts:bolts-android:1.+'
compile 'com.parse:parse-android:1.+'

这些行在扩展应用程序

的类中
Parse.enableLocalDatastore(this);

Parse.initialize(this, "8R4nAHgdPDJ*****E2Hj0y4pSlO9sA1b", "qJomEl0uICAsg7uwiDvxEtW****3S01N8a3XNr");

你不应该发布这些代码,而是要保密。

例如:

package <your.package.name>;

import android.app.Application;

import com.parse.Parse;
import com.parse.ParseInstallation;

public class ClassNameApplication extends Application {

@Override
public void onCreate() {
    super.onCreate();

    Parse.initialize(this, "2zMz0hbE****r4sMwZJrYtX", "YdK7lFBh5MI6gca*****WPXmKb");
    ParseInstallation.getCurrentInstallation().saveInBackground();
}

}

并在清单文件中添加此类名称:

<强>此处

<application
    android:name=".ClassNameApplication "
    android:allowBackup="true"
    ......

答案 1 :(得分:0)

您需要实施Multidex

你也有一些结构问题。以下行只应调用一次。因此,您需要创建一个类应用程序并在清单中注册它,然后在该应用程序类中调用onCreate行。这是example.

Parse.enableLocalDatastore(this);

Parse.initialize(this, "YOUR_KEY");

祝你好运。

答案 2 :(得分:0)

只需添加此

即可
android {...
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/dependencies.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/notice.txt'
    }
..}

并在multiDexEnabled true代码

中添加defaultConfig

这是我的应用程序类public class Example extends MultiDexApplication {

清单中的

添加如此<application android:name=".Example"

这是我的gradle文件

defaultConfig {
    applicationId "com.example"
    minSdkVersion 14
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    multiDexEnabled true // add this
}