2016-04-11 31 views
0

エラーが発生して何日も過ごしています。私はアンドロイドで私のプロジェクトをコンパイルし、私は多くの部分を削除し、私は別のクラスで同じエラーが発生するため、問題は、「NoClassDefFoundErrorが」であるAndroidの< 5.0[NoClassDefFoundError]をコンパイルして実行するとエラーが発生する

Caused by: java.lang.NoClassDefFoundError: com.squareup.okhttp.Protocol[] 

で実行 。 私は既にプロジェクトをきれいにして、gradlew cleanを使用しました。私は何日もgoogled。私を助けてください。 Gradleの中

私の依存関係:

dependencies { 

compile fileTree(dir: 'libs', include: ['*.jar']) 
testCompile 'junit:junit:4.12' 
compile files('libs/YouTubeAndroidPlayerApi.jar') 

compile('com.facebook.android:facebook-android-sdk:[4,5)') { 
    exclude group: 'com.parse.bolts', 
      module: 'bolts-tasks' 
    exclude group: 'com.parse.bolts', 
      module: 'bolts-applinks'; 
} 

compile 'com.android.support:appcompat-v7:23.3.0' 
compile 'com.google.apis:google-api-services-youtube:v3-rev145-1.20.0' 

compile 'com.squareup.okhttp3:okhttp:3.2.0' 
compile 'com.google.android.gms:play-services-gcm:8.4.0' 
compile 'info.hoang8f:fbutton:1.0.5' 
compile 'com.victor:lib:1.0.1' 
compile 'com.melnykov:floatingactionbutton:1.3.0' 
compile 'com.google.code.gson:gson:2.4' 
compile 'com.github.amlcurran.showcaseview:library:5.3.0' 
compile 'com.amazonaws:aws-android-sdk-mobileanalytics:2.2.5' 
compile 'com.facebook.fresco:fresco:0.7.0' 
compile 'com.facebook.fresco:imagepipeline-okhttp:0.7.0' 
compile 'com.wang.avi:library:1.0.1' 
compile 'com.balysv:material-ripple:1.0.2' 
compile 'com.nineoldandroids:library:2.4.0' 
compile 'com.github.markushi:circlebutton:1.1' 
compile 'com.baoyz.pullrefreshlayout:library:1.2.0' 
compile 'com.android.support:design:23.3.0' 
compile 'com.android.support:recyclerview-v7:23.3.0' 
compile 'com.github.jd-alexander:LikeButton:0.1.8' 
compile 'com.android.support:multidex:1.0.1' 
} 

[EDIT]

モジュールのGradle:

buildscript { 
repositories { 
    jcenter() 
    mavenCentral() 
} 
dependencies { 
    classpath 'com.android.tools.build:gradle:1.5.0' 

    // NOTE: Do not place your application dependencies here; they belong 
    // in the individual module build.gradle files 
} 
} 

allprojects { 
    repositories { 
     jcenter() 
     maven { url "https://jitpack.io" } 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

プロジェクトのGradleの残り、私が使用している味、そしてもし私はここに置くことが長くなる:

defaultConfig { 
     applicationId "blacktoad.com.flapprototipo" 
     minSdkVersion 15 
     targetSdkVersion 23 
     versionCode 20 
     versionName "1.48" 

     multiDexEnabled true 
    } 

    dexOptions { 
     javaMaxHeapSize "4g" 
     preDexLibraries = false 
     jumboMode = true 
    } 
+0

通常のAndroidのプロジェクトに複数のbuild.gradleを持ち、build.gradleが複数の 'dependencies'セクションを持つことができます。この依存関係のセクションがどこにあるのか、ソースファイルがどこにあるのかを表示できますか? – RaGe

+0

あなたはproguardであなたのコードを難読化していますか?関連するすべてのルールを追加しましたか? – thepoosh

+0

が編集されました。私は他の多くの情報を入れました。私はプロジェクトとモジュールのgradleだけを使用しています。 –

答えて

1

あなたは

<application 
    ... 
    android:name="android.support.multidex.MultiDexApplication" 
    ... 
> 

すでに内のプロパティの名前を指定した場合のAndroidManifest.xmlでmultidex設定を逃しましたapplicationタグを追加する場合は、AndroidManifest.xmlの代わりにApplicationを拡張するクラスに次のoverride関数を追加してください。もちろん

@Override 
protected void attachBaseContext(Context base) { 
    super.attachBaseContext(base); 
    MultiDex.install(this); 
} 

は、あなたはbuild.gradleにそのコードを持っている必要があり

android { 
    defaultConfig { 
     multiDexEnabled true 
    } 
} 
+0

<アプリケーション ... アンドロイド:名前= "android.support.multidex.MultiDexApplication" ... > –

1

私は解決しました! compile 'com.android.support:multidex:1.0.1'

をそして、私のMainActivityに私が追加::

私は、依存関係に追加

@Override 
protected void attachBaseContext(Context base) { 
    super.attachBaseContext(base); 
    MultiDex.install(this); 
} 
関連する問題