декларация множественной активности Android в манифесте - PullRequest
3 голосов
/ 14 января 2011

У меня есть основной вид деятельности.Оттуда я звоню в 2 другие подгруппы под названием FacebookLogin и Twitterlogin.Я использую следующий код в AndroidManufest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.examples.Kikin" android:versionCode="1"
android:versionName="1.0">
<!-- THIS IS THE BEGINNING OF SHARING LINKS FROM THE BROWSER -->
<application android:icon="@drawable/kikinlogo"
    android:label="@string/app_name" android:debuggable="true">
    <activity android:name=".Kikin" android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
        <intent-filter android:label="@string/app_name">
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="text/plain" />
        </intent-filter>
    </activity>
    <activity android:name=".FacebookLogin" android:label="@string/app_name">
        <intent-filter android:label="@string/app_name">
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />
        <!--    <data android:mimeType="image/png" /> -->
        </intent-filter>
    </activity>
    <activity android:name=".TwitterLogin" android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.VIEW"></action>
            <category android:name="android.intent.category.DEFAULT"></category>
            <category android:name="android.intent.category.BROWSABLE"></category>
            <data android:scheme="yourapp" android:host="twitt"></data>
        </intent-filter>
    </activity>

</application>
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.INTERNET" />

Я правильно делаю?Должны ли я вкладывать действия FacebookLogin и TwitterLogin в основную деятельность ?Вышеупомянутые 2 класса находятся в пакете com.examples. .* везде, где используется.

Ответы [ 5 ]

1 голос
/ 15 января 2011

Кажется, что на ярлыках ваших FacebookLogin и TwitterLogin отсутствует знак @ - измените их на android: label = "@ string / app_name"

1 голос
/ 14 января 2011

Нет такой вещи, как "субактивность". То, что вы называете одно действие другим, не означает, что это «субактивность».

Вы не можете вложить теги активности в манифест, и вы, вероятно, получите ошибку компиляции, если попытаетесь.

В манифесте вы можете установить только одно действие в теге запуска. Хорошо, Android поддерживает несколько действий запуска.

0 голосов
/ 29 мая 2012

Возможно, вы уже протестировали его, но попробуйте объявить свои действия с полным путем (хотя вы уже объявили это в теге пакета) Таким образом, вместо использования

<activity android:name=".TwitterLogin"  />

использование

<activity android:name="com.examples.Kikin.TwitterLogin" />

Иногда из-за этого возникают проблемы.

Я знаю, что это старая ветка, но я m having the same problem and in my case specifying full package name doesn не помогу. Вы уже нашли решение? Мне действительно интересно знать, как избежать этой ошибки.

0 голосов
/ 15 января 2011

Не вкладывайте объявления активности, просто поместите их все как элементы в элемент приложения:

<manifest ...
  <application ...
    <activity ...
    </activity>
    <activity ...
    </activity>
    <activity ...
    </activity>
  </application>
</manifest>

Образец, который вы разместили здесь (с отступом в стороне), выглядит хорошо.

0 голосов
/ 15 января 2011

Манифест, который вы разместили, выглядел нормально.

Но в отношении вашего комментария об ошибке «Вы объявили об этом действии в AndroidManifest.xml?», Вам необходимо тщательно проверить пакет и имя класса Activity вы пытаетесь запустить и убедитесь, что он соответствует <activity android:name>, который вы написали в манифесте.

Вся необходимая информация должна быть в сообщении об ошибке.

...