2

У меня есть приложение, в которое я добавил 2 продукта. Это приложение имеет меню на первом экране, которое позволяет пользователю выбирать следующую активность, которую я загружаю с намерением.android sdk product flavors - активность не найдена, когда я начинаю новое действие с использованием намерения

Вот AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity 
     android:name="com.alpha.aloedu.MainActivity" 
     android:screenOrientation="portrait"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name="com.alpha.aloedu.guideddrawing.GuidedLetterDrawingActivity" 
     android:label="Guided Letter Drawing" 
     android:screenOrientation="portrait" /> 
    <activity 
     android:name="com.alpha.aloedu.buildvocabulary.BuildVocabularyActivity" 
     android:label="Image Plus Word" 
     android:screenOrientation="portrait" /> 
    <activity 
     android:name="com.alpha.aloedu.findthepicture.FindThePictureActivity" 
     android:label="Find the Picture" 
     android:screenOrientation="portrait" /> 
    <activity 
     android:name="com.alpha.aloedu.findtheletter.FindTheLetterActivity" 
     android:label="Find the Letter" 
     android:screenOrientation="portrait" /> 
    <activity 
     android:name="com.alpha.aloedu.fillintheletter.FillInTheLetterActivity" 
     android:label="Find the Letter" 
     android:screenOrientation="portrait" /> 
    <activity 
     android:name="com.alpha.aloedu.EndActivity" 
     android:label="End Activity" 
     android:screenOrientation="portrait" /> 

    <activity 
     android:name="com.alpha.aloedu.AdminActivity" 
     android:label="Admin Activity" 
     android:theme="@style/AppTheme.NoActionBar" 
     android:screenOrientation="portrait" 
     /> 

</application> 

<supports-screens 
    android:largeScreens="true" 
    android:normalScreens="true" 
    android:requiresSmallestWidthDp="480" 
    android:resizeable="false" 
    android:smallScreens="false" 
    android:xlargeScreens="true" /> 

Вот соответствующая часть Gradle файла:

productFlavors { 
    de { 
     applicationIdSuffix ".de" 
     versionName "1.1de" 
    } 
    fr { 
     applicationIdSuffix ".fr" 
     versionName "1.1fr" 
    } 
} 

Вот источник дерева :

enter image description here

Вот код, где я загрузить следующую деятельность:

Intent intent = new Intent(); 
    intent.setClassName("com.alpha.aloedu", newClassName); 
    currentActivity.startActivity(intent); 
    currentActivity.finish(); 

Я поставил точку останова на второй линии и «newClassName» имеет правильное значение. Однако, когда я бегу «deDebug» вариант, я получаю ошибку на третьей строке:

android.content.ActivityNotFoundException: Невозможно найти явный класс активности {com.alpha.aloedu/com.alpha.aloedu .guideddrawing.GuidedLetterDrawingActivity}; Вы объявили эту активность в своем AndroidManifest.xml?

Класс GuidedLetterDrawingActivity существует в основном дереве источника, а также в AndroidManifest.xml.

Благодарим за помощь, которую вы можете предоставить.

+0

Вы добавили информацию о своей деятельности в файл Manifeast? –

+0

Да, в файле манифеста под заголовком «main» – scrayne

+0

вы проверяли, правильно ли указано имя Activity, указанное в манифесте, означает, что вы дали правильный путь? –

ответ

0

Вы должны объявить деятельность каждого аромата в файле манифеста
... \ SRC \ де \ AndroidManifest.xml
... \ SRC \ пт \ AndroidManifest.xml

+0

Я пробовал это, и я все равно получаю ту же ошибку – scrayne

0

Declare каждая новая деятельность в манифесте. Даже если вы измените имя, вы должны изменить файл манифеста.

 <application 
    android:allowBackup="true" 
    android:icon="@drawable/icon" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity 
     android:name=".new_Activity" 
     android:label="@string/app_name"/> 

    <activity 
     android:name=".new_Activity2" 
     android:label="@string/app_name"/> 
    </application> 

Это должно быть объявлен в основном Java файл

Intent intent = new Intent(MainActivity.this, newActivity.class); 
     startActivity(intent); 

    Intent intent1 = new Intent(MainActivity.this, newActivity2.class); 
     startActivity(intent1); 

выполнить пристальный блок кода согласно вашему требованию в одних и тех же или различных функциях.

+0

Я отредактировал свой оригинал вопрос включить файл манифеста. – scrayne