2016-06-02 5 views
7

को ठीक नहीं कर सकता मैं अब दो दिनों से रहा हूं। मैंने मल्टी-डेक्सिंग से संबंधित सभी समाधानों की कोशिश की और इसलिए इसका कोई फायदा नहीं हुआ। मैंने सबकुछ हटा दिया ताकि मैं एक नई शुरुआत कर सकूं।एंड्रॉइड: बस 65k अंक

अनुप्रयोग 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() 
} 
} 

manifiest के अंदर:

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

सबसे आम समाधान मैंने पढ़ा था शामिल नहीं हैं सभी Google सेवाओं, बस चीजें जो आपको चाहिए और इस प्रकार मैं केवल विज्ञापन संकलित करता हूं। लेकिन यह अभी भी काम नहीं करता है।

वर्गों में से कुछ नहीं मिला जा रहा है:

ई/dalvikvm: नहीं मिल सका वर्ग 'android.os.UserManager', विधि com.google.android.gms.common.zze.zzan से संदर्भित

ई/dalvikvm: नहीं मिल सका वर्ग 'android.app.AppOpsManager', विधि com.google.android.gms.internal.zzpv.zzg से संदर्भित

ई/dalvikvm: 'वर्ग नहीं मिल सका कॉम .google.android.gms.internal.zzamq ', विधि com.google.android.gms.internal.zzdi.zze से संदर्भित

आदि ...

मैं सभी दृष्टिकोण मैंने पाया है, जिनमें से एक this की कोशिश की। मैंने अपने ऐप में विधियों की गणना करने के अंत में वर्णित डेक्सकाउंट प्लगइन का भी उपयोग किया। मुझे नहीं पता कि फ़ाइल को किसी प्रश्न में कैसे संलग्न किया जाए ताकि आप here से debug.txt डाउनलोड कर सकें।

नोट: मेरा मानना ​​है कि यह एक 65k सीमा मुद्दा है क्योंकि 4.4 एंड्रॉइड मोबाइल पर, विज्ञापन प्रदर्शित होते हैं और त्रुटियां लॉगकैट में दिखाई नहीं देती हैं। लेकिन दो 4.2 एंड्रॉइड मोबाइल पर, विज्ञापन प्रदर्शित नहीं होते हैं और त्रुटियां कैसे होती हैं। हालांकि, अगर आप debug.txt को देखो:

तरीकों फ़ील्ड पैकेज/वर्ग के नाम

15236 5010 एंड्रॉयड

14,282 9575 कॉम

बाकी

संयुक्त 3k से कम हैं

मुझे अभी 65k दिखाई नहीं दे रहा है ... जब तक एंड्रॉइड और इसके अंतर्गत क्या है (android.something) स्टैक

मुझे यहां क्या याद आ रही है?

+0

पर सेट कर सकता है, मुझे यकीन नहीं है कि मैं समझता हूं कि "कक्षा नहीं मिल सका" का अर्थ है कि आप 65k सीमा को मार रहे हैं। और आपने minify को गलत के रूप में सक्षम किया है, इसलिए इसे उन वर्गों को खराब नहीं करना चाहिए –

+0

टिप्पणी के लिए धन्यवाद। मुझे लगता है कि इस मुद्दे को 65k सीमा है, क्योंकि यह है कि मैं गुगलिंग के दौरान पहुंच रहा था। लोगों को जीएमएस जोड़ने के बाद भी इसका सामना करना पड़ता है। यह लिंक एक उदाहरण है जो मुझे इस निष्कर्ष तक पहुंचाता है। आम बातों में: डी/दल्विकविक, वीएफवाई: ओपोड 0x71 को 0x0000 आदि पर बदलना .. http://stackoverflow.com/questions/35794629/could-not-find-method-android-app-notificationbuilder-setlocalonly/35830652 –

+1

ज़रूर। आप इस पृष्ठ पर दूसरे ब्लू बॉक्स को भी पढ़ सकते हैं, लेकिन आपने विज्ञापनों को केवल तभी संभाला है। https://developers.google.com/android/guides/setup#add_google_play_services_to_your_project –

उत्तर

0

यह प्रतीत होता है कि कारण इन कक्षाओं में दिखाई नहीं दे रहे थे, क्योंकि वे गूगल खेल मेरी मोबाइल फोन के कुछ पर सेवाओं के साथ संगत नहीं थे। पहले मैंने सोचा कि मैं अद्यतित था क्योंकि मैं अब Google play सेवाओं को अपडेट नहीं कर सका। लेकिन मैं गलत था क्योंकि 'अप टू डेट' आपके मोबाइल को अधिकतम संस्करण पर आधारित कर सकता है (सर्वोत्तम स्पष्टीकरण मैं साथ आ सकता हूं)

समाधान प्रश्नों के संस्करणों से संबंधित एसडीके एपीआई अपडेट करना था (एंड्रॉइड 4.1 .2 Google एपीआई और इसलिए)।

कारणों का समाधान नहीं हुआ कारण यह है कि, 65k विधि सीमा के समान लक्षण होने पर, यह पुरानी एपीआई से संबंधित था।

आप एक स्थिति Dexing आवश्यकता है कि लेकिन अभी भी लापता वर्गों का सामना सामना करते हैं, यह शायद आपकी समस्या :)

एंड्रॉयड डब्ल्यू/GooglePlayServicesUtil Google Play सेवाएं पुरानी है। यदि आप देखते हैं कि आपके मोबाइल जीएमएस 'अद्यतित' हैं, तो आपको यह समस्या है

संपादित करें: स्टैक ओवरफ्लो मुझे अपना उत्तर स्वीकार करने नहीं देगा लेकिन यह है। मैं दो दिनों में अपडेट करूंगा जब तक कि एक मोड इसे

1

जीएमएस जोड़ना आपको 64K सीमा तक आसानी से पहुंचा जाना चाहिए था।

तो चलो स्थिति यहाँ पर ध्यान दें:

  • आप 64K विधियों के नीचे हैं जब आप शायद ऊपर किया जाना चाहिए था।
  • आप कक्षाएं खो रहे हैं।

ग्रैडल फ़ाइल का पूरा सेट नहीं होने पर, मुझे लगता है कि यह मुद्दा प्रोगार्ड से संबंधित सामानों को काटने से संबंधित है जो आप रखना चाहते हैं। मैं पहले turning off Proguard obfuscation entirely का सुझाव देता हूं और परीक्षण करता हूं कि इस मुद्दे को ठीक किया गया है या नहीं।

+0

परियोजना और ऐप ग्रेडल के साथ अद्यतन प्रश्न। इसके अलावा मैनिफेस्ट का हिस्सा भी संबंधित है। मुझे विश्वास नहीं है कि आपके द्वारा दिए गए लिंक में उल्लिखित प्रो प्रो निर्देशिका है। कम से कम झूठी प्रभावी ढंग से बंद करने के लिए गलत साबित नहीं किया गया है। मैं अभी भी इस सामान के लिए नया हूँ :)। मैंने इस लाइन को भी हटा दिया "प्रोगार्डफाइल getDefaultProguardFile ('proguard-android.txt'), 'proguard-rules.pro' 'लेकिन अभी भी कोई भाग्य –

+0

बहुत धन्यवाद सर आपने मुझे सही दिशा की ओर इशारा किया। कक्षाएं एंड्रॉइड संस्करणों से संबंधित पुरानी एपीआई की वजह से गायब थीं और प्रोजेवार्ड उन्हें समाप्त नहीं कर रही थीं। पीएस: यदि आप इसे जोड़ते हैं तो जीएमएस जोड़ना केवल 65k से अधिक है :) –

0

ads अन्य निर्भरताओं पर निर्भर करता है और अपने आप पर कार्य नहीं करेगा। , जिनमें से एक यह कोशिश के साथ शुरू करने के लिए:

compile "com.google.android.gms:play-services-base:9.0.0" 
+0

कोई भाग्य नहीं। इसके अलावा मेरा कोड 4 पर काम करता है।4 एंड्रॉइड मोबाइल :)। –

+0

'आधार' एक पारस्परिक निर्भरता नहीं है? –

+0

@ क्रिकेट_007, आप सही हैं, पीओएम ने इसे "संकलन" क्षेत्र के साथ उल्लेख किया है, इसलिए इसे शामिल किया जाना चाहिए। – Egor