microsoft / Cognitive-Face-Android

Cognitive Services Face client library for Android.
https://www.microsoft.com/cognitive-services/en-us/face-api
Other
269 stars 151 forks source link

Sample app crashes on Android 9 #48

Closed Alex277277277 closed 5 years ago

Alex277277277 commented 5 years ago

Sample app crashes on Android 9.

com.microsoft.projectoxford.faceapisample E/AndroidRuntime: FATAL EXCEPTION: main Process: com.microsoft.projectoxford.faceapisample, PID: 12223 java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/impl/client/DefaultHttpClient; at com.microsoft.projectoxford.face.rest.WebServiceRequest.(WebServiceRequest.java:67) at com.microsoft.projectoxford.face.FaceServiceRestClient.(FaceServiceRestClient.java:99) at com.microsoft.projectoxford.face.samples.helper.SampleApp.onCreate(SampleApp.java:45) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1154) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5871) at android.app.ActivityThread.access$1100(ActivityThread.java:199) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.http.impl.client.DefaultHttpClient" on path: DexPathList[[zip file "/data/app/com.microsoft.projectoxford.faceapisample-mX1hJpaMtqiI69OayytOcQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.microsoft.projectoxford.faceapisample-mX1hJpaMtqiI69OayytOcQ==/lib/arm64, /system/lib64, /vendor/lib64]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134) at java.lang.ClassLoader.loadClass(ClassLoader.java:379) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at com.microsoft.projectoxford.face.rest.WebServiceRequest.(WebServiceRequest.java:67)  at com.microsoft.projectoxford.face.FaceServiceRestClient.(FaceServiceRestClient.java:99)  at com.microsoft.projectoxford.face.samples.helper.SampleApp.onCreate(SampleApp.java:45)  at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1154)  at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5871)  at android.app.ActivityThread.access$1100(ActivityThread.java:199)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)  at android.os.Handler.dispatchMessage(Handler.java:106)  at android.os.Looper.loop(Looper.java:193)  at android.app.ActivityThread.main(ActivityThread.java:6669)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 

Please add this to AndroidManifest.xml: <uses-library android:name="org.apache.http.legacy" android:required="false" />

Thanks.

raghunandankavi2010 commented 5 years ago

Yes this is because httpclient is deprecated. you need to add that tag in application element in android 9. https://developers.google.com/maps/documentation/android-sdk/config#specify_requirement_for_apache_http_legacy_library

lebronJ commented 5 years ago

Thanks for reaching us. We have fixed this with PR #53 merged, which replaces outdated httpClient with OkHttp. Please have a try. Feel free to reopen this if you still meet similar problems.