2014-12-06 3 views
0

클라이언트/서버 Android 프로그램을 실행하려고했습니다. 하지만 언제든지 안드로이드에서 클라이언트 부분을 실행하면 오류가 발생합니다. 불행히도 귀하의 응용 프로그램은 실행이 중지되었습니다. 나는 logcat을 읽으려고했지만 havent는 문제를 해결할 수 있었다. 아래는 내 코드입니다 ... 나는 3 일 동안 노력해 왔습니다. 프로젝트Android 애플리케이션이 작동하지 않습니다.

로그 캣

12-06 21:05:19.948: D/AndroidRuntime(2136): Shutting down VM 
12-06 21:05:19.948: W/dalvikvm(2136): threadid=1: thread exiting with uncaught exception (group=0xa4cf8b20) 
12-06 21:05:19.980: E/AndroidRuntime(2136): FATAL EXCEPTION: main 
12-06 21:05:19.980: E/AndroidRuntime(2136): Process: com.example.simpleclientapp, PID: 2136 
12-06 21:05:19.980: E/AndroidRuntime(2136): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.simpleclientapp/com.example.simpleclientapp.New_main_activity}: android.view.InflateException: Binary XML file line #1: Error inflating class linearlayout 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at android.app.ActivityThread.access$800(ActivityThread.java:135) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at android.os.Handler.dispatchMessage(Handler.java:102) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at android.os.Looper.loop(Looper.java:136) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at android.app.ActivityThread.main(ActivityThread.java:5001) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at java.lang.reflect.Method.invokeNative(Native Method) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at java.lang.reflect.Method.invoke(Method.java:515) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at dalvik.system.NativeStart.main(Native Method) 
12-06 21:05:19.980: E/AndroidRuntime(2136): Caused by: android.view.InflateException: Binary XML file line #1: Error inflating class linearlayout 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:707) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at android.view.LayoutInflater.inflate(LayoutInflater.java:469) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at android.app.Activity.setContentView(Activity.java:1929) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at com.example.simpleclientapp.New_main_activity.onCreate(New_main_activity.java:33) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at android.app.Activity.performCreate(Activity.java:5231) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  ... 11 more 
12-06 21:05:19.980: E/AndroidRuntime(2136): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.linearlayout" on path: DexPathList[[zip file "/data/app/com.example.simpleclientapp-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.simpleclientapp-2, /system/lib]] 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at java.lang.ClassLoader.loadClass(ClassLoader.java:497) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at java.lang.ClassLoader.loadClass(ClassLoader.java:457) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at android.view.LayoutInflater.createView(LayoutInflater.java:559) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at android.view.LayoutInflater.onCreateView(LayoutInflater.java:652) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694) 
12-06 21:05:19.980: E/AndroidRuntime(2136):  ... 20 more` 

activity_new_main_activity.xml

<linearlayout android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android"> 

    <textview android:id="@+id/textView1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge"> 

    <button android:id="@+id/button1" android:layout_gravity="center" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Send"> 


</button></textview></linearlayout> 

manifest.xml

<uses-sdk 
     android:minSdkVersion="10" 
     android:targetSdkVersion="21" /> 

    <uses-permission android:name="android.permission.INTERNET" > 
    </uses-permission> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 

     <activity 
      android:name=".New_main_activity" 
      android:label="@string/title_activity_new_main_activity" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

new_main_activity.java

과 관련하여 도움이 필요하십니까
package com.example.simpleclientapp; 

import java.io.BufferedInputStream; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.OutputStream; 
import java.net.Socket; 
import java.net.UnknownHostException; 
import java.lang.*; 
import java.lang.annotation.*; 
import java.lang.ref.*; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class New_main_activity extends Activity 
{ 
    private Socket client; 
    private FileInputStream fileInputStream; 
    private BufferedInputStream bufferedInputStream; 
    private OutputStream outputStream; 
    private Button button; 
    private TextView text; 

@Override 
    public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_new_main_activity); 

    button = (Button) findViewById(R.id.button1); //reference to the send button 
    text = (TextView) findViewById(R.id.textView1); //reference to the text view 

    //Button press event listener 
    button.setOnClickListener(new View.OnClickListener() 
    { 

     public void onClick(View v) 
     { 


      File file = new File("/mnt/shared/sharedwithemulatot/numbers.txt"); //create file instance 

      try 
      {  
       client = new Socket("127.0.0.1", 6443); 

       byte[] mybytearray = new byte[(int) file.length()]; //create a byte array to file 

       fileInputStream = new FileInputStream(file); 
       bufferedInputStream = new BufferedInputStream(fileInputStream); 

       bufferedInputStream.read(mybytearray, 0, mybytearray.length); //read the file 

       outputStream = client.getOutputStream(); 

       outputStream.write(mybytearray, 0, mybytearray.length); //write file to the output stream byte by byte 
       outputStream.flush(); 
       bufferedInputStream.close(); 
       outputStream.close(); 
       client.close(); 

       text.setText("File Sent"); 


    } catch (UnknownHostException e) { 
    e.printStackTrace(); 
    } catch (IOException e) { 
    e.printStackTrace(); 
    } 


    } 
    }); 

} 
} 

답변

5

레이아웃 파일에는 <linearlayout> 태그가있는 것으로 보입니다. 대신 <LinearLayout> 태그를 사용하십시오. 여기에서 사례가 중요합니다.

업데이트 : 원래 질문에 레이아웃 파일이 있지만 서식 때문에 놓쳤습니다. Squonk이 지적한 것처럼, 모든 요소는 적절한 경우가되어야합니다.

+0

여전히 좋은 점을 사용했습니다 ... – san1234

+1

@ san1234 : 선형 레이아웃을 LinearLayout으로 변경하여 선형 레이아웃을 고정했다고해서 문제가 완전히 고쳐 졌다고 할 수는 없습니다. 단추가 Button이어야하고 textview가 TextView 여야합니다. 대소 문자 구분은 레이아웃 파일에 사용되는 모든 위젯뿐만 아니라 Java 코드 파일과 마찬가지로 다른 XML 파일에도 적용됩니다. – Squonk

+1

@ 스퀘크 나는 모든 위젯의 형식을 변경했습니다. 여전히 좋지는 않습니다. – san1234

관련 문제