[英]Android 65k multidex issue for android system application
[英]Android: Just can't fix the 65k issue
我已經在這兩天了。 我嘗試了所有與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'
項目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" ...
我讀到的最常見的解決方案是不包括所有谷歌服務,只包括你需要的東西。 因此我只編譯一個廣告。 但它仍然無效。
有些課程沒有找到:
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)堆棧
我在這里錯過了什么?
添加GMS應該很容易達到64K的限制。
那么讓我們來看看這里的情況:
沒有完整的Gradle文件集,我猜這個問題與Proguard刪除你要保留的東西有關。 我建議首先完全關閉Proguard混淆並測試這是否解決了這個問題。
ads
依賴於其他依賴項,並且不會自行運行。 首先,請嘗試包含以下內容:
compile "com.google.android.gms:play-services-base:9.0.0"
這些類似乎沒有顯示的原因似乎是因為它們與我的某些手機上的谷歌游戲服務不兼容。 起初我以為我是最新的,因為我無法再更新谷歌播放服務。 但我錯了,因為“最新”是基於您的手機可以處理的最大版本(我能想到的最佳解釋)
解決方案是更新與相關版本相關的sdk API(Android 4.1.2 Google API等)。
dexing解決方案不起作用的原因是因為它具有類似於65k方法限制的症狀,它與過時的API有關。
如果你遇到的情況確實需要德興,但仍然面臨缺課,這可能是你的問題:)
android W / GooglePlayServicesUtil Google Play服務已過期。 如果你在logcat中看到它,即使你的移動gms是“最新的”,那么你就遇到了這個問題
編輯:Stackoverflow不會讓我接受我自己的答案,但就是這樣。 我將在兩天內更新,除非mod可以將其設置為已接受
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.