2012-06-14 110 views
0

我構建了一個從一個活動切換到另一個活動的代碼。當運行此代碼時,它會打印以下錯誤。 XML文件錯誤:中止構建。安裝錯誤:INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID 這裏是我的xml文件xml解析錯誤

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="wishme.code" 
    android:versionCode="1" 
    android:versionName="1.0" android:sharedUserId="@string/app_name"> 



    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:name=".WishMeActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".Activity2"></activity> 
    </application> 
<uses-sdk android:minSdkVersion="8" /> 
</manifest> 

這裏活動1

package wishme.code; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.provider.Contacts.Intents; 
import android.widget.TextView; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.Button; 
import android.widget.RadioButton; 
import android.widget.Toast; 

public class WishMeActivity extends Activity { 
    private EditText text; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    text=(EditText) findViewById(R.id.editText1); 
    } 

public void myClickhandler(View view) 
{ 
    switch(view.getId()) 
    { 
    case R.id.button1: 
     RadioButton celsiusbutton=(RadioButton) findViewById(R.id.radio0); 
     RadioButton fahrenheit=(RadioButton) findViewById(R.id.radio2); 
     if(text.getText().length()==0) 
     { 
      Toast.makeText(this,"Enter a Valid Value",Toast.LENGTH_LONG).show(); 
      return; 

     } 
     float input=Float.parseFloat(text.getText().toString()); 
     if(celsiusbutton.isChecked()) 
     {text.setText(String.valueOf(convertFahrenheitToCelsius(input))); 
     celsiusbutton.setChecked(false); 
      fahrenheit.setChecked(true);} 
     else 
     { 
      text.setText(String.valueOf(convertCelsiusToFahrenheit(input))); 
      fahrenheit.setChecked(false); 
      celsiusbutton.setChecked(true); 
     } 
     break; 
    case R.id.button_nxt: 
     Intent myintent=new Intent(view.getContext(),Activity2.class); 
     startActivityForResult(myintent, 0); 
     break; 



    } 
} 
private float convertFahrenheitToCelsius(float fahrenheit) { 
     return ((fahrenheit - 32) * 5/9); 
    } 

    // Converts to fahrenheit 
    private float convertCelsiusToFahrenheit(float celsius) { 
     return ((celsius * 9)/5) + 32; 
    } 
} 

最後,這是活動2

package wishme.code; 

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

public class Activity2 extends Activity{ 

    public void onCreate(Bundle savedInstancestate) { 
     super.onCreate(savedInstancestate); 
     setContentView(R.layout.main2); 
     Button previous=(Button) findViewById(R.id.button_prev); 

    } 
    public void prevclickhandler(View view) 
    { 
     Intent intent=new Intent(); 
     setResult(RESULT_OK,intent); 
     finish(); 
    } 
} 

請建議我解決方案。

回答

0

我只是想從一個活動去另一個,然後你不需要給sharedUserID。它用於您有兩個不同的應用程序使用相同的證書籤名,並且您希望在它們之間共享數據,或者您希望它們在相同的過程中運行。

如果您刪除它,它應該可以解決您的問題。

的信息有關sharedUserIDhttp://developer.android.com/guide/topics/manifest/manifest-element.html#uid

+0

感謝您的答覆。這對我來說工作得很好。 – Kamran

1

這可能是由於非允許值的sharedUserId價值存在。它必須與封裝結構具有相同的格式(例如com.android)。

+1

謝謝;這爲我解決了這個問題。 – Sam