Fresco を使用しようとしていますが、初期化しようとするとすぐにクラッシュします。私は Android Studio を使用しており、ここにある手順に従っています。
私のアプリケーション クラスでは、onCreate
メソッドのチュートリアルと同じように Fresco を次のように初期化します。
Fresco.initialize(this);
これはクラッシュのスタック トレースです。
09-25 18:31:05.896 7789-7789/com.myproject E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com.facebook.imagepipeline.producers.HttpUrlConnectionNetworkFetcher
at com.facebook.imagepipeline.core.ImagePipelineConfig.<init>(ImagePipelineConfig.java:126)
at com.facebook.imagepipeline.core.ImagePipelineConfig.<init>(ImagePipelineConfig.java:61)
at com.facebook.imagepipeline.core.ImagePipelineConfig$Builder.build(ImagePipelineConfig.java:378)
at com.facebook.imagepipeline.core.ImagePipelineFactory.initialize(ImagePipelineFactory.java:77)
at com.facebook.drawee.backends.pipeline.Fresco.initialize(Fresco.java:32)
at com.myproject.MyProjectApplication.onCreate(MyProjectApplication.java:196)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:999)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4151)
at android.app.ActivityThread.access$1300(ActivityThread.java:130)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1255)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
これは私のbuild.gradleファイルです
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/ASL2.0'
}
defaultConfig {
applicationId "com.myproject"
minSdkVersion 15
targetSdkVersion 22
versionCode 22
versionName "0.0.22"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dexOptions {
javaMaxHeapSize "2g"
jumboMode = true
}
}
repositories {
flatDir {
dirs 'libs'
}
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
compile ('com.facebook.fresco:fresco:0.7.0+')
compile 'com.android.support:multidex:1.0.0'
compile(name:'httpmime-4.3.5', ext:'jar')
compile(name:'httpcore-4.3.2', ext:'jar')
...
compile 'com.facebook.android:facebook-android-sdk:4.5.0'
}
configurations {
all*.exclude group: 'com.nineoldandroids', module: 'library'
}
アップデート
Android バージョン 4.1.2 を実行しているエミュレータと 4.4.4 を実行している実際の電話でこれを経験しています。Lollipop デバイスでは、すべてが機能します。 Frescoは Gingerbread 以降をサポートしています。