应用程序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'
项目 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()
}
}
内部清单:
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<application
android:name="android.support.multidex.MultiDexApplication" ...
我读到的最常见的解决方案是不包括所有谷歌服务,只包括你需要的部分。因此我只编译了广告部分。但是它仍然不起作用。
一些类找不到:
我尝试了所有我找到的方法,其中之一是this。 我还使用了在结尾提到的 dexcount 插件来计算我的应用程序中的方法数。我不知道如何将文件附加到问题上,所以你可以从here下载 debug.txt。E/dalvikvm﹕无法找到类'android.os.UserManager',引用自方法com.google.android.gms.common.zze.zzan
E/dalvikvm﹕无法找到类'android.app.AppOpsManager',引用自方法com.google.android.gms.internal.zzpv.zzg
E/dalvikvm﹕无法找到类'com.google.android.gms.internal.zzamq',引用自方法com.google.android.gms.internal.zzdi.zze
等等...
注意:我认为这是一个65k的限制问题,因为在4.4的Android手机上,广告显示正常,logcat中没有错误。但是,在两个4.2的Android手机上,广告不显示且出现错误。然而,如果您查看debug.txt文件: 方法数15236,字段数5010,包/类名android 14282,字段数9575,com其余小于3k。 我只看到了65k...除非Android及其下面的内容(android.something)堆栈。 我在这里错过了什么?