2

2つの製品のフレーバーを追加したアプリケーションがあります。このアプリは、ユーザーが次のアクティビティを選択できるようにする最初の画面にメニューを備えています。アンドロイドSDK製品のフレーバー - インテントを使用して新しいアクティビティを開始したときにアクティビティが見つかりません

ここの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" 
    } 
} 

はここでソースツリーであります:私は二行目にブレークポイントを設定しており、「newClassName」が正しい値を有する

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

:ここ

enter image description here

は、私は次のアクティビティをロードするコードです。私は「deDebug」バリアントを実行したときしかし、私は、3行目のエラーを取得:

android.content.ActivityNotFoundException: 明示的なアクティビティクラスを見つけることができません {com.alpha.aloedu/com.alpha.aloedu .guideddrawing.GuidedLetterDrawingActivity}; AndroidManifest.xmlでこのアクティビティを宣言しましたか?

GuidedLetterDrawingActivityクラスは、メインソースツリーおよびAndroidManifest.xmlに存在します。

ご協力いただきありがとうございます。

+0

あなたの活動をManifeastファイルに追加しましたか? –

+0

はい、マニフェストファイルの "main"にあります – scrayne

+0

マニフェストで定義されたアクティビティ名が適切かどうかをチェックしましたか?適切なパスを指定したことを意味しますか? –

答えて

0

あなたは、そのマニフェストファイル
... \ SRC \ デ\ AndroidManifest.xmlを
... \ SRC \ FR \ AndroidManifest.xmlを

+0

これを試しましたが、まだ同じエラーが発生します – scrayne

0

宣言で各味の活動を宣言する必要がありますマニフェストのそれぞれの新しい活動。名前を変更しても、マニフェストファイルを変更する必要があります。

 <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

関連する問題