Android:无法解决65k问题

Mou*_*lil 7 android android-gradle-plugin

我已经在这两天了.我尝试了所有与multi-dexing相关的解决方案,但无济于事.我删除了所有内容,以便我可以重新开始.

应用程序gradle:

apply plugin: 'com.android.application'
android {
          compileSdkVersion 21
          buildToolsVersion "21.1.2"
          defaultConfig {
          applicationId "com.bilboldev.joestrategy"
          minSdkVersion 15
          targetSdkVersion 21
          versionCode 1
          versionName "1.0"
          multiDexEnabled true
      }
buildTypes {
    release {
        minifyEnabled false

        proguardFiles getDefaultProguardFile('proguard-android.txt'),     'proguard-rules.pro'
      }
   }
}

dependencies {
compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.google.android.gms:play-services-ads:9.0.0'
}

apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)

项目gradle:

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:1.1.0'
    classpath 'com.google.gms:google-services:3.0.0'

}
}



allprojects {
repositories {
    jcenter()
}
}
Run Code Online (Sandbox Code Playgroud)

里面最明显:

 <meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />
 <application
    android:name="android.support.multidex.MultiDexApplication" ...
Run Code Online (Sandbox Code Playgroud)

我读到的最常见的解决方案是不包括所有谷歌服务,只包括你需要的东西.因此我只编译一个广告.但它仍然无效.

有些课程没有找到:

E/dalvikvm:无法找到类com.google.android.gms.common.zze.zzan引用的类'android.os.UserManager'

E/dalvikvm:无法找到类com.google.android.gms.internal.zzpv.zzg引用的类'android.app.AppOpsManager'

E/dalvikvm:找不到com.google.android.gms.internal.zzdi.zze方法引用的课程'com.google.android.gms.internal.zzamq'

等等...

我尝试了我找到的所有方法,其中之一就是这个.我还使用了最后提到的dexcount插件来计算我的应用程序中的方法.我不知道如何将文件附加到问题,因此您可以从此处下载debug.txt .

注意:我认为这是65k限制问题,因为在4.4 Android手机上,广告显示并且错误不会显示在logcat中.但在两个4.2 Android手机上,广告没有显示和错误如何.但是,如果你看一下debug.txt:

methods字段包/类名

15236 5010 android

14282 9575 com

休息时间不到3k

我只是没有看到65k ...除非android和它下面的东西(android.something)堆栈

我在这里错过了什么?

Mou*_*lil 0

这些类没有显示的原因似乎是因为它们与我的某些手机上的谷歌游戏服务不兼容。起初我以为我是最新的,因为我无法再更新谷歌播放服务。但我错了,因为“最新”是基于您的手机可以处理的最大版本(我能想到的最佳解释)

解决方案是更新与相关版本相关的 sdk API(Android 4.1.2 Google API 等)。

dexing 解决方案不起作用的原因是,虽然有类似于 65k 方法限制的症状,但它与过时的 API 有关。

如果你遇到确实需要德兴但仍然面临缺课的情况,这可能就是你的问题:)

android W/GooglePlayServicesUtil Google Play 服务已过时。如果你在 logcat 中看到这一点,即使你的移动 gms 是“最新的”,那么你就会遇到这个问题

编辑:Stackoverflow 不会让我接受我自己的答案,但就是这样。我将在两天内更新,除非mod可以将其设置为接受