1
votes

Comment appeler correctement l'activité principale à partir du module de bibliothèque sur le module d'application

Chaque fois que j'appelle une activité sur le module de la bibliothèque à partir du module de l'application, l'application se bloque

Il y a un bouton sur le module de l'application et quand il est enfoncé, il appellera une activité du module de la bibliothèque, mais chaque fois que je le fais, l'application juste se bloque

Voici le code du module d'application dans lequel l'intention appellera une activité principale sur le module bibliothèque

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.kiminonawa.mydiary">

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<uses-feature android:name="android.hardware.location.network" />
<uses-feature android:name="android.hardware.location.gps" />
<uses-feature
    android:name="android.hardware.telephony"
    android:required="false" />

<application
    android:name=".shared.MyDiaryApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="false"
    android:theme="@style/AppTheme"
    tools:replace="android:icon">

    <!-- Add this key for search the place name -->
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="AIzaSyDVL96wY3-Xqe8Rjt065Low6hMCOjW-Qd4" />



    <activity
        android:name=".init.InitActivity"
        android:screenOrientation="portrait"
        android:theme="@style/Theme_NoActionBar_FullScreen">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".main.MainActivity"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustPan" />
    <activity
        android:name=".contacts.ContactsActivity"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustPan" />
    <activity
        android:name=".entries.DiaryActivity"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustPan" />
    <activity
        android:name=".entries.photo.PhotoOverviewActivity"
        android:screenOrientation="portrait"
        android:theme="@style/Theme_NoActionBar_FullScreen" />
    <activity
        android:name=".entries.photo.PhotoDetailViewerActivity"
        android:screenOrientation="portrait" />
    <activity
        android:name=".memo.MemoActivity"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustPan" />
    <activity
        android:name=".setting.SettingActivity"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustPan" />
    <activity
        android:name=".main.AboutActivity"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustPan" />
    <activity
        android:name=".security.PasswordActivity"
        android:screenOrientation="portrait" />
    <activity
        android:name=".backup.BackupActivity"
        android:screenOrientation="portrait" />

    <!-- Ucrop -->
    <activity
        android:name="com.yalantis.ucrop.UCropActivity"
        android:screenOrientation="portrait"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar" />

    <!-- Start For NoNonsense-FilePicker -->
    <activity
        android:name=".backup.DirectoryPickerActivity"
        android:theme="@style/FilePickerTheme">
        <intent-filter>
            <action android:name="android.intent.action.GET_CONTENT" />

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

    <!-- This is for Android N -->
    <provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="${applicationId}.provider"
        android:exported="false"
        android:grantUriPermissions="true"
        tools:replace="android:authorities">
        <meta-data
        tools:replace="android:resource"
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/nnf_provider_paths" />
    </provider>
    <!-- End For NoNonsense-FilePicker -->


    <activity android:name=".main.CollageFragment"></activity>

</application>

Voici le manifeste Android sur le module d'application

 //Audio Activity
    audioButton = (ImageView) findViewById(R.id.IV_main_audio);
    audioButton.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v){
            Intent intentLoadNewActivity = new 
    Intent("com.danielkim.soundrecorder.MainActivity");
            startActivity(intentLoadNewActivity);
        }

    });


1 commentaires

Au lieu d'écrire la résolution dans le titre et d'expliquer ce que vous avez fait dans le corps de la question, faites votre propre réponse et marquez votre réponse comme meilleure réponse.


4 Réponses :


0
votes

Mon mauvais, la réflexion peut être utilisée pour démarrer votre activité à partir du module de bibliothèque:

Class.forName ("com.mypackage.MainActivity")

try {
    Intent myIntent = new 
    Intent(this,Class.forName("com.danielkim.soundrecorder.MainActivity"));
    startActivity(myIntent);

    } catch (ClassNotFoundException e) {
     e.printStackTrace();
  }


1 commentaires

j'ajouterai ceci sur le module d'application ou le module de bibliothèque?



0
votes
Intent i=new Intent(PresentActivity.this, NextActivity.class);
startActivity(i);

4 commentaires

comment puis-je différencier l'activité que j'essaie d'appeler. Parce que le module d'application et le module de bibliothèque ont MainActivity sur eux


J'ai fait cela et ça plante toujours Intent i = new Intent (MainActivity.this, com.danielkim.soundrecorder.activities.MainActivity.class); startActivity (i);


quelle bibliothèque utilisez-vous?


Voici le rapport de plantage de Logcat imgur.com/a/FECU0xL J'ai converti le com.danielkim.soundrecorder à partir d'un module d'application dans un module de bibliothèque et c'est pourquoi j'utilise comme bibliothèque.



0
votes
audioButton = (ImageView) findViewById(R.id.IV_main_audio);
audioButton.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View v){
        try{
            // try another constructor
            Intent intentLoadNewActivity = new Intent(v.getContext(), "com.danielkim.soundrecorder.MainActivity");
            // add optional flag FLAG_ACTIVITY_NEW_TASK if necessary.
            // intentLoadNewActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intentLoadNewActivity);
        } catch (Exception e) {
             Log.e("TAG",e);// if still not work, please show us the log.
        }
    }
});

3 commentaires

Où puis-je voir le journal ?? désolé, je suis nouveau dans l'utilisation d'Android Studio


@ DatsiK77 appuyez sur alt + 6 ou Logcat dans la barre d'outils inférieure. Voir developer.android.com/studio/debug/am-logcat


Je ne vois pas ce qui ne va pas, veuillez définir le filtre sur uniquement l'application sélectionnée en haut à droite du plan logcat. Et saisissez le TAG que vous avez utilisé lors de la connexion au plan d'entrée supérieur du milieu.



0
votes

(Solution publiée au nom de l'auteur de la question) .

Je l'ai déjà résolu après quelques recherches. Je viens d'avoir un nom de fichier en double sur le module d'application et le module bibliothèque.


0 commentaires