0

あるアクティビティから別のアクティビティに切り替えるコードを作成しました。このコードを実行すると、次のエラーが出力されます。 XML ファイルのエラー: ビルドを中止します。 および インストールエラー: INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID ここに私の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();
    }
}

解決策を教えてください。

4

2 に答える 2

1

私はあなたがただある活動から別の活動に行きたいだけです、そしてあなたは与える必要はありませんsharedUserID。これは、同じ証明書で署名された2つの異なるアプリケーションがあり、それらの間でデータを共有したい場合、またはそれらを同じプロセスで実行したい場合に使用されます。

あなたがそれを取り除くならば、それはあなたの問題を解決するはずです。

詳細については、 http sharedUserID//developer.android.com/guide/topics/manifest/manifest-element.html#uidをご覧ください。

于 2012-06-14T08:31:10.940 に答える
1

これは、sharedUserId値が許可されていない値であることが原因である可能性があります。パッケージ構造と同じ形式にする必要があります (例: com.android)。

于 2014-03-05T10:10:06.220 に答える