Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.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
Android 无法执行dex:多个dex文件定义(&;java.lang.NoClassDefFoundError_Android_Java - Fatal编程技术网

Android 无法执行dex:多个dex文件定义(&;java.lang.NoClassDefFoundError

Android 无法执行dex:多个dex文件定义(&;java.lang.NoClassDefFoundError,android,java,Android,Java,我犯了两个错误。我不知道该怎么办。 第一个错误: [2014-07-04 15:07:01-索引加载程序]无法执行索引:多个索引 文件定义Lcom/google/gdata/util/common/base/Escaper [2014-07-04 15:07:01-MyGov]转换为Dalvik格式失败: 无法执行dex:多个dex文件定义 Lcom/google/gdata/util/common/base/Escaper;Landroid/support/v4/accessibilityse

我犯了两个错误。我不知道该怎么办。 第一个错误:

[2014-07-04 15:07:01-索引加载程序]无法执行索引:多个索引 文件定义Lcom/google/gdata/util/common/base/Escaper

[2014-07-04 15:07:01-MyGov]转换为Dalvik格式失败: 无法执行dex:多个dex文件定义 Lcom/google/gdata/util/common/base/Escaper;Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl

正如所建议的,未经检查的Android私有库

我已经将所有库(来自AndroidPrivateLibraries)添加到了libs中,除了support-v4-18.0.4.jar库(这会导致之前声明的错误)

SplashActivity(此活动在应用程序启动时打开)工作正常。但当我试图打开MainActivity时,出现了以下错误:

java.lang.NoClassDefFoundError: com.globalsolutions.mygov.ui.main活动

根据这项研究,Android私有库应该被检查

结论

error#1 makes me to uncheck Android Private libraries
error#2 makes me to re-check Android Private libraries
在这种情况下怎么办?如何解决这个问题? 谢谢你宝贵的时间

更新:

控制台中错误1的通知:

[2014-07-04 15:06:48-MyGov]Dx写入输出故障:已存在 已准备[2014-07-04 15:07:01-Dex加载程序]无法执行Dex: 多个dex文件定义Lcom/google/gdata/util/common/base/Escaper; [2014-07-04 15:07:01-MyGov]转换为Dalvik格式失败: 无法执行dex:多个dex文件定义 Lcom/google/gdata/util/common/base/Escaper

错误2的Logcat:

07-04 15:15:07.679:E/AndroidRuntime(26204):致命异常:主 07-04 15:15:07.679:E/AndroidRuntime(26204): java.lang.NoClassDefFoundError: com.globalsolutions.mygov.ui.main活动07-04 15:15:07.679: E/AndroidRuntime(26204):在 com.globalsolutions.mygov.ui.SplashActivity.startMainActivity(SplashActivity.java:174) 07-04 15:15:07.679:E/AndroidRuntime(26204):在 com.globalsolutions.mygov.ui.SplashActivity$6$3.run(SplashActivity.java:275) 07-04 15:15:07.679:E/AndroidRuntime(26204):在 android.os.Handler.handleCallback(Handler.java:587)07-04 15:15:07.679:E/AndroidRuntime(26204):在 android.os.Handler.dispatchMessage(Handler.java:92)07-04 15:15:07.679:E/AndroidRuntime(26204):在 android.os.Looper.loop(Looper.java:130)07-04 15:15:07.679: E/AndroidRuntime(26204):在 android.app.ActivityThread.main(ActivityThread.java:3687)07-04 15:15:07.679:E/AndroidRuntime(26204):在 java.lang.reflect.Method.Invokenactive(本机方法)07-04 15:15:07.679:E/AndroidRuntime(26204):在 java.lang.reflect.Method.invoke(Method.java:507)07-04 15:15:07.679: E/AndroidRuntime(26204):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 07-04 15:15:07.679:E/AndroidRuntime(26204):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)07-04 15:15:07.679:E/AndroidRuntime(26204):在 dalvik.system.NativeStart.main(本机方法)07-04 15:15:07.687: E/liblog(1516):调用转储状态07-04 15:15:07.687:E/(1516)失败: Dumpstate>/data/log/Dumpstate\u应用程序\u错误

主要活动代码:

package com.globalsolutions.mygov.ui;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.globalsolutions.mygov.Preferences;
import com.globalsolutions.mygov.R;
import com.globalsolutions.mygov.ui.master.MasterWizardActivity;
import com.google.analytics.tracking.android.EasyTracker;

public class MainActivity extends BaseActivity {
    public static final String TAG = MainActivity.class.getSimpleName();

    private LinearLayout warningContainer;
    private TextView warningLabel;
    private Button history;
    private Button appeal;
    private Button call;
    private Button about;
    private Button settings;

    private Preferences prefs;


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

        prefs = Preferences.getInstance(this);
    }


    @Override
    public void onResume() {
        Preferences.refActivity = this;
        super.onResume();
    }


    /**
     * Поиск и инициализация вьюшек
     */
    private void initViews() {
        warningContainer = (LinearLayout) findViewById(R.id.warning);
        warningLabel = (TextView) findViewById(R.id.warningLabel);
        history = (Button) findViewById(R.id.history);
        appeal = (Button) findViewById(R.id.appeal);
        call = (Button) findViewById(R.id.call);
        about = (Button) findViewById(R.id.about);
        settings = (Button) findViewById(R.id.settings);

        Intent intent = getIntent();
        if (intent != null) {
            String status = intent.getStringExtra("status");
            if (!"success".equals(status)) {
                warningContainer.setVisibility(View.VISIBLE);
                history.setEnabled(false);
                appeal.setEnabled(false);
            }
        }
    }

    /**
     * История обращений
     * @param v
     */
    public void historyClick(View v) {
        EasyTracker.getTracker().sendEvent("Главное меню", "Выбран пункт", "История обращений", (long) 0);  
        Intent i = new Intent(getApplicationContext(), RequestsListActivity.class);
        startActivity(i);       
        overridePendingTransition(0, 0);
    }

    /**
     * Подать обращение
     * @param v
     */
    public void appealClick(View v) {
        EasyTracker.getTracker().sendEvent("Главное меню", "Выбран пункт", "Подать обращение", (long) 0);   
        Intent i = new Intent(getApplicationContext(), MasterWizardActivity.class);
        startActivity(i);       
        overridePendingTransition(0, 0);
    }

    /**
     * Позвонить в Call-центр
     * @param v
     */
    public void callClick(View v) {
        EasyTracker.getTracker().sendEvent("Главное меню", "Выбран пункт", "Позвонить в call-центр", (long) 0); 
        dialPhone();
    }

    /**
     * О приложении
     * @param v
     */
    public void aboutClick(View v) {
        EasyTracker.getTracker().sendEvent("Главное меню", "Выбран пункт", "О приложении", (long) 0);   
        Intent intent = new Intent(this, AboutActivity.class);
        startActivity(intent);
    }

    /**
     * Настройки
     * @param v
     */
    public void settingsClick(View v) {
        EasyTracker.getTracker().sendEvent("Главное меню", "Выбран пункт", "Настройки", (long) 0);  
        Intent intent = new Intent(this, PreferencesActivity.class);
        startActivity(intent);
    }

    @Override
    public void onStart() {
      super.onStart();
      EasyTracker.getInstance().activityStart(this);
    }

    @Override
    public void onStop() {
      super.onStop();
      EasyTracker.getInstance().activityStop(this);
    }           
}
我犯了两个错误。我不知道该怎么办。第一个错误:

这个错误是不言自明的。如前所述,您将包括2个以上的JAR(或者一个JAR加上您自己的Java类),其中包含重复项

解决方案是确定复制品来自何处(例如,检查罐子),然后确定要更改或丢弃哪个罐子

正如这里所建议的,未经检查的Android私有库

我对这个答案投了反对票,因为它是相当错误的

我已经将所有库(来自AndroidPrivateLibraries)添加到了libs中,除了support-v4-18.0.4.jar库(这会导致之前声明的错误)

我将这句话解释为“当我添加
support-v4-18.0.4.jar
时,我开始出现构建错误”。在这种情况下,您知道两个罐子中的一个是问题的根源。如果类名冲突,我猜另一个是
libGoogleAnalyticsV2.jar
。您需要:

  • 查找这些JAR的设计用于协同工作的版本,或

  • 扔掉其中一个罐子


  • 请张贴您的日志、清单和相关代码。