0

我在API level 22 (lollipop)手机中遇到了一个奇怪的问题。ClassDefNoFound on API 22 x_86 level API

手机使用这些API级别做工精细

  • API 24
  • API 23

但是,当我在API级别上运行我的应用程序22移动,它给了我下面的错误消息。

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

然而,这并不是Picasso相关的问题,如果我删除Picasso library它开始让我对其他类的错误消息。

Process: com.myapp.app, PID: 16327 
    java.lang.NoClassDefFoundError: Failed resolution of: Lcom/myapp/app/VideosListActivity 
     at com.myapp.app.MainActivity$8.onClick(MainActivity.java:422) 

摇篮文件(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' 
    } 
} 

摇篮 - 项目

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" /> 

回答

1

您是否在更改后手动重新同步gradle?您是否还更改了build.gradle中的生成工具版本以匹配API 22?您显示的错误只有在gradle没有正确重建或重新生成时才会显示。我也尝试从命令行手动执行它...(在OS X中),./gradlew clean./gradlew assemble

+0

更改gradle文件后,我点击Sync按钮,它为我同步了gradle文件。在gradle构建之后它没有显示任何错误消息。我需要为APi 22支持做额外的步骤吗? – Kirmani88

+0

你不应该需要。这应该是一切。如果构建之后没有失败,是否正在部署和工作? – RyanInBinary

相关问题