5

फेसबुक ऐप इंस्टॉल होने पर मेरा फेसबुक लॉगिन बटन ठीक काम करता है।फेसबुक लॉगिन बटन क्लिक विफल हो जाता है जब फेसबुक ऐप इंस्टॉल नहीं होता

E/AndroidRuntime: FATAL EXCEPTION: main                 
java.lang.NoClassDefFoundError: Failed resolution of: 
Landroid/support/customtabs/CustomTabsIntent$Builder; 
at com.facebook.internal.CustomTab.openCustomTab(CustomTab.java:47) 
at com.facebook.CustomTabMainActivity.onCreate(CustomTabMainActivity.java:67) 
at android.app.Activity.performCreate(Activity.java:6251) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
at android.app.ActivityThread.-wrap11(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.customtabs.CustomTabsIntent$Builder" on path: DexPathList[[zip file "/data/app/com.testapp-2/base.apk"],nativeLibraryDirectories=[/data/app/com.testapp-2/lib/arm, /data/app/com.testapp-2/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]] 
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:469) 
at com.facebook.internal.CustomTab.openCustomTab(CustomTab.java:47)  
at com.facebook.CustomTabMainActivity.onCreate(CustomTabMainActivity.java:67)  
at android.app.Activity.performCreate(Activity.java:6251)  
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)  
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)  
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
at android.app.ActivityThread.-wrap11(ActivityThread.java)  
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
at android.os.Handler.dispatchMessage(Handler.java:102)  
at android.os.Looper.loop(Looper.java:148)  
at android.app.ActivityThread.main(ActivityThread.java:5417)  
at java.lang.reflect.Method.invoke(Native Method)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
Suppressed: java.lang.ClassNotFoundException: android.support.customtabs.CustomTabsIntent$Builder 
at java.lang.Class.classForName(Native Method) 
at java.lang.BootClassLoader.findClass(ClassLoader.java:781) 
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:504) 
... 15 more 
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available 

MANIFEST: रूप में की जरूरत

<activity 
    android:name="com.facebook.CustomTabActivity" 
    android:exported="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.VIEW" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.BROWSABLE" /> 
     <data android:scheme="@string/fb_login_protocol_scheme" /> 
    </intent-filter> 
</activity> 

जबकि fb_login_protocol_scheme मूल्य "अमेरिकन प्लान" के साथ शुरू होता

फेसबुक एप्लिकेशन को उपकरण पर स्थापित नहीं है, यह मेरी अनुप्रयोग क्रैश हो।

Gradle निर्भरता:

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile 'com.android.support:appcompat-v7:25.3.0' 
    compile 'com.android.support:design:25.3.0' 
    compile 'com.google.firebase:firebase-core:10.2.1' 
    compile 'com.google.firebase:firebase-database:10.2.1' 
    compile 'com.google.firebase:firebase-ads:10.2.1' 
    compile ('com.facebook.android:facebook-android-sdk:4.20.0') // app invites 
    { 
     exclude group: 'com.android.support' 
    } 
    compile 'com.facebook.android:audience-network-sdk:4.20.0' 
    compile "com.android.support:cardview-v7:25.3.0" 
    testCompile 'junit:junit:4.12' 
} 

मैं इसे कैसे हल कर सकते हैं?

उत्तर

-2

मुझे लगता है कि आपको जांचना चाहिए कि फेसबुक स्थापित है या नहीं। इस जवाब पर देखो:

https://stackoverflow.com/a/18752247/5292173

+0

लेकिन फेसबुक ने अपने ट्यूटोरियल में लिखा: "जब आप क्रोम कस्टम टैब सक्षम करते हैं, तो एसडीके एक वेबव्यू के बजाय क्रोम कस्टम टैब में लॉगिन संवाद प्रस्तुत करता है जब फेसबुक ऐप इंस्टॉल नहीं होता है।" –

7

आप फेसबुक निर्भरता से 'com.android.support' को छोड़कर कर रहे हैं। मुझे लगता है कि ऐसा इसलिए है क्योंकि इसमें सहायता पुस्तकालयों के समान संस्करण शामिल नहीं थे (फेसबुक एसडीके 4.20.0 एंड्रॉइड का उपयोग करता है: समर्थन: 25.0.0 लेकिन आप समर्थन पुस्तकालय 25.3.0 शामिल करते हैं, इसलिए इसे छोड़कर सही बात है कर)।

लेकिन अगर आप CustomTab सुविधा काम कर करना चाहते हैं, इसलिए आप अपने अनुप्रयोग निर्भरता में उचित निर्भरता को शामिल करना चाहिए, तो निम्न पंक्ति जोड़ें:

compile 'com.android.support:customtabs:25.3.0' 

और यह काम करना चाहिए।

+1

@upvoted thx philippe –

संबंधित मुद्दे