如何解决java.lang.NoClassDefFoundError:解析失败:Lcom / myapp / app / VideosListActivity;

时间:2016-09-16 20:40:10

标签: android android-layout gradle build.gradle picasso

我的应用程序已开始在某些设备中提供此奇怪的错误消息。我不明白它的来源,以及为什么它只在某些设备上发生。

  

java.lang.NoClassDefFoundError:解析失败:   LCOM / squareup /毕加索/毕加索;

首先我虽然Picasso是罪魁祸首,但在我删除Picasso库后,它开始在其他活动中给我错误消息。有些活动正常,有些活动提供错误消息。

在大多数活动中给予java.lang.NoClassDefFoundError:。问题仅在一些手机中随机出现。一个s5工作正常,一个给出此错误消息。 s4正在创建问题,而s7工作正常。

我花了好几个小时,但无法找出此错误消息的主要原因。

视频列表活动

     java.lang.NoClassDefFoundError: Failed resolution of: com/myapp/app/VideosListActivity;
     at com.myapp.app.MainActivity$8.onClick(MainActivity.java:422)

Caused by: java.lang.ClassNotFoundException: Didn't find class "com.myapp.app.VideosListActivity" 
on path: DexPathList[[zip file "/data/app/com.myapp.app-1/base.apk"],
nativeLibraryDirectories=[/data/app/com.myapp.app-1/lib/arm, /vendor/lib, /system/lib]]
  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:511)

Gradle文件(APP)

   compileSdkVersion 24
    buildToolsVersion "23.0.3"
    defaultConfig {

        applicationId 'com.myapp.app'
        minSdkVersion 21
        targetSdkVersion 24
        versionCode 26
        versionName "1.0"
        multiDexEnabled true

        ndk {
            abiFilters "armeabi-v7a", "x86", "armeabi", "mips"
        }

    }
    lintOptions {
        abortOnError false
    }
    dexOptions {
        javaMaxHeapSize "4g"
        jumboMode true
    }


    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    productFlavors {
    }
}
dependencies {
    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support:design:24.2.1'
    compile 'com.google.maps.android:android-maps-utils:0.4'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile project(':common')
    compile project(':commonwidget')
    compile project(':videowidget')
    compile 'com.android.support:multidex:1.0.1'
    compile 'org.apache.commons:commons-lang3:3.4'
    compile 'org.apache.httpcomponents:httpcore:4.4.1'
    compile 'com.google.code.gson:gson:2.4'
    compile 'com.squareup.okhttp:logging-interceptor:2.6.0'
    compile 'org.glassfish:javax.annotation:10.0-b28'
    compile 'io.card:android-sdk:5.4.0'
    compile 'it.sephiroth.android.library.targettooltip:target-tooltip-library:1.3.15'
    compile 'com.github.michaelye.easydialog:easydialog:1.4'
    compile 'org.jsoup:jsoup:1.8.3'
    compile 'me.grantland:autofittextview:0.2.+'


repositories {
    flatDir {
        dirs 'libs'
    }
}

Gradle - 项目

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        /**/
  /*      classpath 'com.android.tools.build:gradle:1.2.3'*/
        classpath 'com.android.tools.build:gradle:2.1.3'
        classpath 'com.google.gms:google-services:2.1.0'
        classpath 'com.google.code.gson:gson:2.2.4'


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

allprojects {
    repositories {
        jcenter()
    }
}

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

清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.myapp.app">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />



    <application
        android:name=".AnalyticsSampleApp"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <service android:name=".ticketing.services.LogoutService" />


        <activity
            android:name=".MainActivity"
            android:configChanges="orientation|keyboardHidden"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

        <activity
            android:name=".MapsActivity"
            android:label="@string/title_activity_maps">
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".SplashDefaultActivity" />
        </activity>
        <activity
            android:name=".DirectionsActivity"
            android:label="@string/title_activity_directions"
            android:parentActivityName=".MapsActivity"
            android:theme="@style/AppTheme.NoActionBar">
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".SplashDefaultActivity" />
        </activity>
        <activity
            android:name=".SplashDefaultActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".SplashVideoActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar" />

                <activity
            android:name=".VideosListActivity"
            android:configChanges="orientation|keyboardHidden"
            android:label="@string/title_activity_videos_list"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme" />

    <activity
            android:name=".VideoActivity"
            android:configChanges="orientation|screenSize"
            android:label="@string/title_activity_video"
            android:theme="@style/AppTheme" />

0 个答案:

没有答案