2017-01-11 15 views
1

任何人都可以帮助我解决这个问题!它昨天工作,但今天当我今天早上再次运行我的应用程序时,它不起作用。.dex文件中方法引用的数量不能超过64K,multidexenabled不能正常工作,并且对于任务':app:clean'失败

这是我build.gladle ...

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.0" 
    repositories { 
     mavenCentral() 
    } 
    defaultConfig { 
     applicationId "com.brandtechnosolutions.petbaazar" 
     minSdkVersion 15 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 



dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile 'com.android.support:appcompat-v7:25.1.0' 
    compile 'com.android.support:design:25.1.0' 
    compile 'com.google.android.gms:play-services:9.8.0' 
    compile 'com.google.android.gms:play-services-appindexing:9.8.0' 
    compile 'com.facebook.android:facebook-android-sdk:[4,5)' 
    compile 'com.android.support:support-v4:25.1.0' 
    compile `enter code here`'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2' 
    testCompile 'junit:junit:4.12' 
} 

我曾尝试使用此...

defaultConfig { 
    ... 
    minSdkVersion 15 
    targetSdkVersion 23 
    ... 

    // Enabling multidex support. 
    multiDexEnabled true 
} 

这...

dependencies { 
    compile 'com.android.support:multidex:1.0.0' 
} 

但随后出现新的错误...

找不到支持Android父母或祖先上下文方法登录(查看):onclick属性上的视图类定义

这是我MainActivity login()方法...

void logIn(View view) {      //called when log in button pressed 
    Intent intent = new Intent(MainActivity.this, LoginActivity.class); 
    startActivity(intent);     // start web activity 
} 

而且即时运行没有在机器人工作室工作......显示错误:

执行失败的任务“:应用程序:清洁”。无法删除文件

当我启用即时运行。请帮忙!

+0

你需要整个''com.google.android.gms:play-services:9.8.0''吗?您只能包含您需要的播放服务的部分。 – Gudin

+0

[56k方法中的Android 64k方法限制错误可能的重复](http://stackoverflow.com/questions/26357228/android-64k-method-limit-error-on-56k-methods) –

+0

@Kevinrob你真的没有'甚至读到最后,是吗?它与multiDex无关,正如您可以从最新的错误中看到的那样。他修复了multiDex问题。 – Vucko

回答

0

问题是您的onClick方法不是public。我认为这个错误与multiDex无关。签名更改为:

public void logIn(View view)... 
+0

在SO的人怎么了?这是肯定的问题的答案,我得到一个减号?为什么?我甚至想要什么呢? – Vucko

+0

昨天它使用非公开onClick方法,但今天它不工作! –

+0

@SayanMukherjee尝试改变这个,让我知道它是否修复它。 – Vucko

0

尝试添加

android{ 
... 
    dexOptions { 
     javaMaxHeapSize "4g" 
    } 
} 
0

我最近所面对你做了同样的问题。如果应用程序包含太多的方法调用,则必须将其制作为Multidex应用程序。不过,我不认为你真的需要这样做。

在你的app.gradle中,你有compile 'com.google.android.gms:play-services:9.8.0'这行,它基本上占用了整个播放服务模块,这是巨大的。我想你的应用程序需要永久构建。

因此,删除一般的播放服务依赖关系(但如果您需要,请保留compile 'com.google.android.gms:play-services-appindexing:9.8.0')并添加或许您需要添加以下行apply plugin: 'com.google.gms.google-services'您的依赖列表结束后。

然后你就可以删除所有multidex废话:)

+0

完成刚刚提到的内容,但出现错误:错误:(40,0)找不到id为'com.google.gms.google-services'的插件。 –

0

问题解决了,这是我做了什么......

将它添加到的build.gradle

dexOptions { 
     javaMaxHeapSize "1g" 
    } 

和.. 。

multiDexEnabled true 

和改变的onClick方法公开...

void logIn(View view) {      //called when log in button pressed 
    Intent intent = new Intent(MainActivity.this, LoginActivity.class); 
    startActivity(intent);     // start web activity 
} 

我不知道实际上它的这些实际工作,我想起来!

谢谢你们的时间和帮助,非常感谢!

相关问题