facebook sdk v4.5.0在启动时崩溃只在Android小于5.0

时间:2015-08-17 15:06:03

标签: android noclassdeffounderror facebook-sdk-4.0 inflate-exception facebook-sdk-4.x

启动时应用程序崩溃,这是崩溃日志:

@Override
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     FacebookSdk.sdkInitialize(getApplicationContext());
     // Initialize the SDK before executing any other operations,
     // especially, if you're using Facebook UI elements.
} 

我在link中做了同样的事情。它适用于Android 5.0及更高版本。但是如果我在android 5.0设备下尝试这个,我上面会得到这个错误日志。

在我的SplashActivity中:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 19
    buildToolsVersion "21.1.2"
    defaultConfig {
        applicationId "com.test"
        minSdkVersion 15
        targetSdkVersion 19
        multiDexEnabled true
    }

    dexOptions {
        incremental true
        javaMaxHeapSize "2048M"
    }

    packagingOptions {
        exclude 'META-INF/LICENSE.txt'
//        exclude 'META-INF/NOTICE.txt
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/ASL2.0'
    }
    lintOptions {
        checkReleaseBuilds false
    }
    productFlavors {
    }
}

dependencies {
    compile 'com.google.code.gson:gson:2.2.4'
    compile files('libs/android-async-http-1.4.4.jar')
    compile files('libs/DP4Java.jar')
    compile files('libs/SecureStorageSDK.jar')
    compile files('libs/UtilitiesSDK.jar')
    compile 'net.lingala.zip4j:zip4j:1.3.2'
    compile 'com.facebook.android:facebook-android-sdk:4.5.0'
}
apply from: 'rollo.gradle'

在build.gradle中:

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

allprojects {
    repositories {
        jcenter()
        mavenCentral()
    }
}

在(顶级)应用内部build.gradle:

<meta-data android:name="com.facebook.sdk.ApplicationId"
                   android:value="@string/facebook_app_id"/>

在清单中:

int[] myArrayValues = new int[4];

// code to fill up array ...

for (int specificValue : myArrayValues) {
    // specific value is a value from the array, do something useful with it
}

编辑: 我知道我的ShimmerTextView没有任何问题。如果我从build.gradle中删除facebook sdk,我不会收到此错误日志。一切都像魅力一样。有一种我无法想象的错误。也许我做错了什么。请帮我解决这个问题。 感谢。

1 个答案:

答案 0 :(得分:0)

你有多个布局xml,一个用于&gt; 5.0版本,一个用于&lt; 5.0版本?检查所有xml文件中是否拼写了自定义视图的完整包名称。 java.lang.NoClassDefFoundError: com.test.ui.shimmer.ShimmerViewHelper表示包名称不正确或不完整。

编辑:实际上似乎在ShimmerTextView的init中找不到ShimmerViewHelper,是否正确引用? <li>