ActivityNotFoundException в Google Plus

Мое приложение Хотите поделиться имиджем в Google Plus И я прочитал О Google Plus И API показывает, что мы можем публиковать медиафайлы с помощью PlusShare.Builder . И я также Искал в stackoverflow, но ditn't Получил правильный ответ. И я пробовал с этим кодом:

case R.id.Share: if (mPlusClient.isConnected()) { Intent shareIntent = new PlusShare.Builder(this,mPlusClient) .setType("image/*") .setText("Risk Score") .addStream(Uri.fromFile(new File(Path))) .getIntent(); startActivityForResult(shareIntent, REQ_START_SHARE); } break; 

А также

  case R.id.Share: Intent shareIntent = ShareCompat.IntentBuilder.from(PlusActivity.this) .setText("This site has lots of great information about Android! http://www.android.com") .setType("image/*").addStream(Uri.fromFile(new File(Path))) .getIntent().setPackage("com.google.android.apps.plus"); startActivityForResult(shareIntent, REQ_START_SHARE); break; 

А также

  case R.id.Share: Intent shareIntent = new PlusShare.Builder(this,mPlusClient) .setType("image/*") .setText("Risk Score") .addStream(Uri.fromFile(new File(Path))) .getIntent(); startActivityForResult(shareIntent, REQ_START_SHARE); break; 

И каждый раз, когда я получаю ту же проблему.

 12-05 12:19:57.316: E/AndroidRuntime(4688): FATAL EXCEPTION: main 12-05 12:19:57.316: E/AndroidRuntime(4688): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.SEND typ=image/* flg=0x80000 pkg=com.google.android.apps.plus (has extras) } 12-05 12:19:57.316: E/AndroidRuntime(4688): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1518) 12-05 12:19:57.316: E/AndroidRuntime(4688): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1390) 12-05 12:19:57.316: E/AndroidRuntime(4688): at android.app.Activity.startActivityForResult(Activity.java:3204) 12-05 12:19:57.316: E/AndroidRuntime(4688): at com.winit.android.riskfactor.PlusActivity.onClick(PlusActivity.java:133) 12-05 12:19:57.316: E/AndroidRuntime(4688): at android.view.View.performClick(View.java:3517) 12-05 12:19:57.316: E/AndroidRuntime(4688): at android.view.View$PerformClick.run(View.java:14155) 12-05 12:19:57.316: E/AndroidRuntime(4688): at android.os.Handler.handleCallback(Handler.java:605) 12-05 12:19:57.316: E/AndroidRuntime(4688): at android.os.Handler.dispatchMessage(Handler.java:92) 12-05 12:19:57.316: E/AndroidRuntime(4688): at android.os.Looper.loop(Looper.java:154) 12-05 12:19:57.316: E/AndroidRuntime(4688): at android.app.ActivityThread.main(ActivityThread.java:4624) 12-05 12:19:57.316: E/AndroidRuntime(4688): at java.lang.reflect.Method.invokeNative(Native Method) 12-05 12:19:57.316: E/AndroidRuntime(4688): at java.lang.reflect.Method.invoke(Method.java:511) 12-05 12:19:57.316: E/AndroidRuntime(4688): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809) 12-05 12:19:57.316: E/AndroidRuntime(4688): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576) 12-05 12:19:57.316: E/AndroidRuntime(4688): at dalvik.system.NativeStart.main(Native Method) 

И я прочитал этот вопрос.

отправка-JSON-данные к Google-плюс

андроид-Google-плюшевая intregation-в-моего-андроид-приложение-дает-андроид-контент-Activit

отправка-JSON-данные к Google-плюс

неспособность к доле-на-гугл-с-андроидом

нет-активность обретенная в обращение, начавшая причина-Ь

Solutions Collecting From Web of "ActivityNotFoundException в Google Plus"

Google+ не имеет независимого API для записи, доступного для общих разработчиков. Единственный способ опубликовать в Google+ через приложение – это открыть приложение Google+ (желательно с использованием Intent, возвращаемого PlusShare.Builder ). Поэтому, если Google plus отсутствует, он будет Укажите ActivityNotFoundException.

Попробуйте эту ссылку и следуйте пошаговой процедуре. Я следовал тому же и работал на меня. Другое дело – очистить свой проект или перезапустить Eclipse IDE или Установить приложение Google+ (apk) на своем устройстве или эмуляторе.
Вы также можете взглянуть на мой ответ, размещенный здесь шаг за шагом. Процедура установки приложения Google+ на эмуляторе.
Надеюсь, он решит вашу проблему …

Отредактировано:
Попробуйте этот код на своем btn_share

 Intent shareIntent = ShareCompat.IntentBuilder.from(ExampleActivity.this) .setType("image/*") .setText("Welcome to the Google+ platform. https://developers.google.com/+") .getIntent() .setPackage("com.google.android.apps.plus");//this line is important you should set your package like in this code. startActivity(shareIntent); 

Google+ требуется Google+, установленный на устройстве. Добавлен этот код для исключения исключений.

 try { startActivityForResult(builder.getIntent(), 0); } catch (ActivityNotFoundException e) { Toast.makeText(YourActivity.this, "You haven't installed google+ on your device", Toast.LENGTH_SHORT).show(); } 

Да, вы можете делиться изображениями в Google плюс с PlusBuilder. Добавьте библиотеку Служб Google Play как ссылку в свой проект. Этот метод вызывает класс com.google.android.gms.plus.PlusShare $ Builder для совместного использования. Если Google plus отсутствует, он будет выдавать ActivityNotFoundException .

MainActivity.java

  import android.app.Activity; import android.content.ContentResolver; import android.content.Intent; import android.content.IntentSender.SendIntentException; import android.net.Uri; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks; import com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener; import com.google.android.gms.plus.PlusClient; import com.google.android.gms.plus.PlusOneButton; import com.google.android.gms.plus.PlusShare; public class MainActivity extends Activity implements ConnectionCallbacks, OnConnectionFailedListener{ private static final int PLUS_ONE_REQUEST_CODE = 0; private static final int REQ_SELECT_PHOTO = 1; private static final int REQ_START_SHARE = 2; private PlusClient mPlusClient; Button share; private static final int REQUEST_CODE_RESOLVE_ERR = 9000; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mPlusClient = new PlusClient.Builder(MainActivity.this, MainActivity.this, MainActivity.this) .build(); share=(Button)findViewById(R.id.share); share.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent photoPicker = new Intent(Intent.ACTION_PICK); photoPicker.setType("image/*"); startActivityForResult(photoPicker, REQ_SELECT_PHOTO); } }); } @Override public void onConnectionFailed(ConnectionResult result) { // TODO Auto-generated method stub if (result.hasResolution()) { try { result.startResolutionForResult(this, REQUEST_CODE_RESOLVE_ERR); } catch (SendIntentException e) { mPlusClient.connect(); } } } @Override public void onConnected(Bundle arg0) { // TODO Auto-generated method stub } @Override public void onDisconnected() { // TODO Auto-generated method stub } @Override protected void onActivityResult(int requestCode, int responseCode, Intent intent) { if (requestCode == REQUEST_CODE_RESOLVE_ERR && responseCode == RESULT_OK) { mPlusClient.connect(); return; } if(requestCode == REQ_SELECT_PHOTO) { if(responseCode == RESULT_OK) { Uri selectedImage = intent.getData(); ContentResolver cr = this.getContentResolver(); String mime = cr.getType(selectedImage); PlusShare.Builder share = new PlusShare.Builder(this); share.setText("hello everyone!"); share.addStream(selectedImage); share.setType(mime); startActivityForResult(share.getIntent(), REQ_START_SHARE); } } } @Override protected void onResume() { super.onResume(); // mPlusOneStandardButtonWithAnnotation.initialize( URL, PLUS_ONE_REQUEST_CODE); } @Override protected void onStart() { super.onStart(); mPlusClient.connect(); } @Override protected void onStop() { super.onStop(); mPlusClient.disconnect(); } } 

Share – кнопка, и камбуз будет открыт по щелчку.

Добавьте следующие строки кода в AndroidManifest.xml под тегом приложения

  <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> 

И разрешение на Интернет:

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

Это рабочий пример Google Plus Sharing.

Просто выполните проверку, если доступны сервисы google.

  int errorCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); if (errorCode != ConnectionResult.SUCCESS) { GooglePlayServicesUtil.getErrorDialog(errorCode, this, 0).show(); } else { // Do somethings } 

Вам необходимо импортировать этот пакет:

 import com.google.android.gms.common.GooglePlayServicesUtil; 

ПРИМЕЧАНИЕ . Обычно у эмулятора не установлены службы Google Play, за исключением того, что для вашего эмулируемого устройства выбраны Google API, а не API Android, но в этом случае вы также должны проверить, доступна ли учетная запись google.

Это как-то связано с .settype() . У меня был .setType("text/html") и .setType("text/html") эта ошибка. Но после того, как я изменил его на .setType («text / plain»), проблема была решена. Я не знаю почему, но .settype() является причиной этой проблемы.

Для меня я забыл добавить setType("image/*") и теперь он отлично работает