I am trying to get data from YouTube api but when I create the httpclient
object with asyctask
I get a NoClassDefFoundError error. Why does this error occur?
import android.content.Intent;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Adapter;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import com.google.android.youtube.player.YouTubeBaseActivity;
import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayerView;
import com.google.android.youtube.player.YouTubeStandalonePlayer;
import org.apache.http.HttpEntity;
import org.apache.http.HttpRequest;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class MainActivity extends YouTubeBaseActivity {
private static final String TAG="MainActivity";
private static String urll="https://www.googleapis.com/youtube/v3/" +
"videos?part=snippet%2CcontentDetails%2Cstatistics&id=Ks-_Mh1QhMc&key="+YouTubeConfig.getApiKey()+" HTTP/1.1";
YouTubePlayerView player;
YouTubePlayer.OnInitializedListener playerInitializer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayList<String> a= new ArrayList<>();
for (int x =0; x<100;x++ ){
a.add(String.valueOf(x));
}
ListView lv= findViewById(R.id.izlenecekVideolar);
ArrayAdapter<String> veriAdaptoru=new ArrayAdapter<String>
(this, android.R.layout.simple_list_item_1, android.R.id.text1, a);
lv.setAdapter(veriAdaptoru);
player = (YouTubePlayerView) findViewById(R.id.youtubeView);
int d = Log.d(TAG, "onCreate: ");
new GetYoutube().execute();
player.initialize(YouTubeConfig.getApiKey(),new YouTubePlayer.OnInitializedListener() {
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
List<String> izle=new ArrayList<>();
izle.add("W4hTJybfU7s");
izle.add("co1T0ue8zD8");
youTubePlayer.loadVideos(izle);
Log.d(TAG, "onInitializationSuccess: ");
youTubePlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.MINIMAL);
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
Log.d(TAG, "onInitializationFailure: ");
}
}
);
Log.d(TAG, "onCreate:initialized ");
}
private static class GetYoutube extends AsyncTask<Void,String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(Void... voids) {
HttpClient hc=new DefaultHttpClient();
HttpGet hget=new HttpGet(urll);
try {
HttpResponse response =hc.execute(hget);
HttpEntity he= response.getEntity();
String json= EntityUtils.toString(he);
return json;
}
catch (Exception e){
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
if (s != null)
{
try {
JSONObject jse=new JSONObject(s);
Log.e("response",jse.toString());
}
catch (Exception e){
e.printStackTrace();
}
}
}
}
}
LOGCAT
2019-07-27 01:49:22.162 21763-21763/com.gamedu.yourchild E/AndroidRuntime: FATAL EXCEPTION: main Process: com.gamedu.yourchild, PID: 21763 java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/commons/logging/LogFactory; at org.apache.http.impl.client.AbstractHttpClient.(AbstractHttpClient.java:182) at org.apache.http.impl.client.DefaultHttpClient.(DefaultHttpClient.java:150) at com.gamedu.yourchild.MainActivity.onCreate(MainActivity.java:68) at android.app.Activity.performCreate(Activity.java:7698) at android.app.Activity.performCreate(Activity.java:7687) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3096) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3257) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:81) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1935) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7116) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:925) Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.commons.logging.LogFactory" on path: DexPathList[[zip file "/data/app/com.gamedu.yourchild-Cf8th6YAffTJoMT1j3NJUg==/base.apk", zip file "/data/app/com.gamedu.yourchild-Cf8th6YAffTJoMT1j3NJUg==/split_lib_dependencies_apk.apk", zip file "/data/app/com.gamedu.yourchild-Cf8th6YAffTJoMT1j3NJUg==/split_lib_resources_apk.apk", zip file "/data/app/com.gamedu.yourchild-Cf8th6YAffTJoMT1j3NJUg==/split_lib_slice_0_apk.apk", zip file "/data/app/com.gamedu.yourchild-Cf8th6YAffTJoMT1j3NJUg==/split_lib_slice_1_apk.apk", zip file "/data/app/com.gamedu.yourchild-Cf8th6YAffTJoMT1j3NJUg==/split_lib_slice_2_apk.apk", zip file "/data/app/com.gamedu.yourchild-Cf8th6YAffTJoMT1j3NJUg==/split_lib_slice_3_apk.apk", zip file "/data/app/com.gamedu.yourchild-Cf8th6YAffTJoMT1j3NJUg==/split_lib_slice_4_apk.apk", zip file "/data/app/com.gamedu.yourchild-Cf8th6YAffTJoMT1j3NJUg==/split_lib_slice_5_apk.apk", zip file "/data/app/com.gamedu.yourchild-Cf8th6YAffTJoMT1j3NJUg==/split_lib_slice_6_apk.apk", zip file "/data/app/com.gamedu.yourchild-Cf8th6YAffTJoMT1j3NJUg==/split_lib_slice_7_apk.apk", zip file "/data/app/com.gamedu.yourchild-Cf8th6YAffTJoMT1j3NJUg==/split_lib_slice_8_apk.apk", zip file "/data/app/com.gamedu.yourchild-Cf8th6YAffTJoMT1j3NJUg==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.gamedu.yourchild-Cf8th6YAffTJoMT1j3NJUg==/lib/x86, /system/lib, /system/product/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196) at java.lang.ClassLoader.loadClass(ClassLoader.java:379) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at org.apache.http.impl.client.AbstractHttpClient.(AbstractHttpClient.java:182) at org.apache.http.impl.client.DefaultHttpClient.(DefaultHttpClient.java:150) at com.gamedu.yourchild.MainActivity.onCreate(MainActivity.java:68) at android.app.Activity.performCreate(Activity.java:7698) at android.app.Activity.performCreate(Activity.java:7687) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3096) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3257) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:81) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1935) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7116) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:925) Suppressed: java.io.IOException: No original dex files found for dex location /data/app/com.gamedu.yourchild-Cf8th6YAffTJoMT1j3NJUg==/split_lib_resources_apk.apk at dalvik.system.DexFile.openDexFileNative(Native Method) at dalvik.system.DexFile.openDexFile(DexFile.java:365) at dalvik.system.DexFile.(DexFile.java:107) at dalvik.system.DexFile.(DexFile.java:80) at dalvik.system.DexPathList.loadDexFile(DexPathList.java:444) at dalvik.system.DexPathList.makeDexElements(DexPathList.java:403) at dalvik.system.DexPathList.(DexPathList.java:164) at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:126) at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:101) at dalvik.system.PathClassLoader.(PathClassLoader.java:74) 2019-07-27 01:49:22.163 21763-21763/com.gamedu.yourchild E/AndroidRuntime: at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:87) at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:116) at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:114) at android.app.ApplicationLoaders.getClassLoaderWithSharedLibraries(ApplicationLoaders.java:60) at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:861) at android.app.LoadedApk.getClassLoader(LoadedApk.java:958) at android.app.LoadedApk.getResources(LoadedApk.java:1196) at android.app.ContextImpl.createAppContext(ContextImpl.java:2462) at android.app.ContextImpl.createAppContext(ContextImpl.java:2454) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6105) at android.app.ActivityThread.access$1100(ActivityThread.java:211) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1778)