обычный текст со списком параметров общего доступа дает ошибку - PullRequest
0 голосов
/ 25 апреля 2018

Хорошо, у меня здесь странная ошибка, которую я не могу понять.Я делюсь данными со списком опций акций в Android "android.intent.action.SEND".

Совместное использование одного изображения работает отлично, но когда я пытаюсь поделиться простым текстом, таким как "asdfdgdsfsa", программа выдает эту ошибку

"Java.Lang.RuntimeException: Невозможносоздание экземпляра действия ComponentInfo {com.companyname.Revamp / Revamp.RecieveDataFromApp.RecieveDataFromApp}: java.lang.ClassNotFoundException: не найден класс «Revamp.RecieveDataFromApp.RecieveDataFromApp» на пути: файл данных / app / zip [файл / файл приложения [файл / файл приложения].companyname.Revamp-HFm6SmD1Y-A76OQwcwCXIA == / base.apk "], nativeLibraryDirectories = [/ data / app / com.companyname.Revamp-HFm6SmD1Y-A76OQwcwCXIA == / lib / x86-li / data / fake/app/com.companyname.Revamp-HFm6SmD1Y-A76OQwcwCXIA==/base.apk!/lib/x86, / system / lib, / vendor / lib]] ".

  protected override void OnCreate(Bundle bundle)
    {

        Intent intent = Intent;
        String action = Intent.Action;
        String type = intent.Type;

        if (Intent.ActionSend.Equals(action) && type != null)
        {
            // This is what we are trying to get working here. 
            if ("text/plain".Equals(type))
            {
                // Handle text being sent
                // ...
                // ...
                // ...     
            }
            else if (type.StartsWith("image/"))
            {
                // Handle single image being sent
                // ...
                // ...
                // ...    
            }
        }
        else if (Intent.ActionSendMultiple.Equals(action) && type != null)
        {
            //This works 
            if (type.StartsWith("image/"))
            {
                // Handle multiple images being sent
                // ...
                // ...
                // ...                        
            }
        }
        else
        {
            // Handle other intents, such as being started from the home screen                    
        }

        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;

        base.OnCreate(bundle);

        global::Xamarin.Forms.Forms.Init(this, bundle);
        LoadApplication(new App());
    }

    <activity android:name="Revamp.RecieveDataFromApp.RecieveDataFromApp" android:icon="@drawable/ic_home">
  <intent-filter>
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="image/*" />
  </intent-filter>
  <intent-filter>
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="text/plain" />
  </intent-filter>
  <intent-filter>
    <action android:name="android.intent.action.SEND_MULTIPLE" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="image/*" />
  </intent-filter>

  <intent-filter>
    <action android:name="android.intent.action.GET_CONTENT" />

    <category android:name="android.intent.category.DEFAULT" />

    <data android:mimeType="*/*" />
  </intent-filter>
</activity>

1 Ответ

0 голосов
/ 27 апреля 2018

Я проверил ваш код и воспроизвел проблему.Вы можете попытаться установить intent-filter в коде, а не в AndroidManifest.xml.Например:

[Activity(Label = "RecieveDataFromApp", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
[IntentFilter(new[] { Intent.ActionSend }, Categories = new[] { Intent.CategoryDefault }, DataMimeType = "image/*", Label = "RecieveDataFromApp")]
[IntentFilter(new[] { Intent.ActionSend }, Categories = new[] { Intent.CategoryDefault }, DataMimeType = "text/plain", Label = "RecieveDataFromApp")]
[IntentFilter(new[] { Intent.ActionSendMultiple }, Categories = new[] { Intent.CategoryDefault }, DataMimeType = "image/*", Label = "RecieveDataFromApp")]    
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
   ...
   ...
   ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...