four
문자열을 사용하고 있습니다.발생 원인 : java.lang.IllegalArgumentException : 호스트 이름이 null이 아니어도됩니다.
String fourth = first+second+third;
다음
first
문자열은
second
문자열 (사용자가 입력) 사용자 호스트 URL의
third
는 "
/musics/a.mp3
"을 포함을 포함하고
fourth
문자열은 다음과 같이 이전 문자열을 결합하여, 전체 URL을 포함, "
http://
"를 포함
new JSONAsyncTask().execute(fourth);
을 그리고 난 다음 오류 받고 있어요 :
은 그 때 나는 다음과 같이의 실행 AsyncTask
에 fourth
문자열을 사용하고 있습니다.
로그 :
10-07 06:17:15.934: E/AndroidRuntime(1194): FATAL EXCEPTION: AsyncTask #1
10-07 06:17:15.934: E/AndroidRuntime(1194): java.lang.RuntimeException: An error occured while executing doInBackground()
10-07 06:17:15.934: E/AndroidRuntime(1194): at android.os.AsyncTask$3.done(AsyncTask.java:278)
10-07 06:17:15.934: E/AndroidRuntime(1194): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
10-07 06:17:15.934: E/AndroidRuntime(1194): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
10-07 06:17:15.934: E/AndroidRuntime(1194): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
10-07 06:17:15.934: E/AndroidRuntime(1194): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
10-07 06:17:15.934: E/AndroidRuntime(1194): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
10-07 06:17:15.934: E/AndroidRuntime(1194): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
10-07 06:17:15.934: E/AndroidRuntime(1194): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
10-07 06:17:15.934: E/AndroidRuntime(1194): at java.lang.Thread.run(Thread.java:856)
10-07 06:17:15.934: E/AndroidRuntime(1194): Caused by: java.lang.IllegalArgumentException: Host name may not be null
10-07 06:17:15.934: E/AndroidRuntime(1194): at org.apache.http.HttpHost.<init>(HttpHost.java:83)
10-07 06:17:15.934: E/AndroidRuntime(1194): at org.apache.http.impl.client.AbstractHttpClient.determineTarget(AbstractHttpClient.java:497)
10-07 06:17:15.934: E/AndroidRuntime(1194): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
10-07 06:17:15.934: E/AndroidRuntime(1194): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
10-07 06:17:15.934: E/AndroidRuntime(1194): at com.app.ifko.HomeActivity$JSONAsyncTask.doInBackground(HomeActivity.java:101)
10-07 06:17:15.934: E/AndroidRuntime(1194): at com.app.ifko.HomeActivity$JSONAsyncTask.doInBackground(HomeActivity.java:1)
10-07 06:17:15.934: E/AndroidRuntime(1194): at android.os.AsyncTask$2.call(AsyncTask.java:264)
10-07 06:17:15.934: E/AndroidRuntime(1194): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
10-07 06:17:15.934: E/AndroidRuntime(1194): ... 5 more
10-07 06:17:22.764: E/WindowManager(1194): Activity com.app.ifko.HomeActivity has leaked window [email protected] that was originally added here
10-07 06:17:22.764: E/WindowManager(1194): android.view.WindowLeaked: Activity com.app.ifko.HomeActivity has leaked window [email protected] that was originally added here
10-07 06:17:22.764: E/WindowManager(1194): at android.view.ViewRootImpl.<init>(ViewRootImpl.java:343)
10-07 06:17:22.764: E/WindowManager(1194): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:245)
10-07 06:17:22.764: E/WindowManager(1194): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:193)
10-07 06:17:22.764: E/WindowManager(1194): at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:118)
10-07 06:17:22.764: E/WindowManager(1194): at android.view.Window$LocalWindowManager.addView(Window.java:537)
10-07 06:17:22.764: E/WindowManager(1194): at android.app.Dialog.show(Dialog.java:274)
10-07 06:17:22.764: E/WindowManager(1194): at com.app.ifko.HomeActivity$JSONAsyncTask.onPreExecute(HomeActivity.java:90)
10-07 06:17:22.764: E/WindowManager(1194): at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:561)
10-07 06:17:22.764: E/WindowManager(1194): at android.os.AsyncTask.execute(AsyncTask.java:511)
10-07 06:17:22.764: E/WindowManager(1194): at com.app.ifko.HomeActivity.onCreate(HomeActivity.java:74)
10-07 06:17:22.764: E/WindowManager(1194): at android.app.Activity.performCreate(Activity.java:4465)
10-07 06:17:22.764: E/WindowManager(1194): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
10-07 06:17:22.764: E/WindowManager(1194): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919)
10-07 06:17:22.764: E/WindowManager(1194): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
10-07 06:17:22.764: E/WindowManager(1194): at android.app.ActivityThread.access$600(ActivityThread.java:122)
10-07 06:17:22.764: E/WindowManager(1194): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
10-07 06:17:22.764: E/WindowManager(1194): at android.os.Handler.dispatchMessage(Handler.java:99)
10-07 06:17:22.764: E/WindowManager(1194): at android.os.Looper.loop(Looper.java:137)
10-07 06:17:22.764: E/WindowManager(1194): at android.app.ActivityThread.main(ActivityThread.java:4340)
10-07 06:17:22.764: E/WindowManager(1194): at java.lang.reflect.Method.invokeNative(Native Method)
10-07 06:17:22.764: E/WindowManager(1194): at java.lang.reflect.Method.invoke(Method.java:511)
10-07 06:17:22.764: E/WindowManager(1194): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
10-07 06:17:22.764: E/WindowManager(1194): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
10-07 06:17:22.764: E/WindowManager(1194): at dalvik.system.NativeStart.main(Native Method)
10-07 06:17:24.144: I/Process(1194): Sending signal. PID: 1194 SIG: 9
활동 코드 : URL의 호스트 부분은 사용자로부터 오는 경우이
public class HomeActivity extends Activity {
String first, second, third, fourth;
TextView etTextToSave;
private SharedPreferences sharedprefs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
etTextToSave = (TextView) findViewById(R.id.etTextToSave);
sharedprefs = getSharedPreferences("MyPrefs", MODE_PRIVATE);
etTextToSave.setText(sharedprefs.getString("SharedPrefsData",""));
second = etTextToSave.getText().toString();
first = "http://";
third = "/musics/a.mp3";
fourth = first+second+third;
.........................
new JSONAsyncTask().execute(fourth);
}
예, null이 예외를 제어 할 수 있습니까? – Sophie
새로운 JSONAsyncTask(). execute (fourth); 앞에'Log' 또는'SOP'를 넣고'fourth' 문자열을 확인하십시오. – Rustam
asynctask에 URL을 기록 하시겠습니까? 귀하의 '두 번째'는 sharedPrefs에 포함 된 것 ""이라고 생각합니다. –