1

J'ai fait un projet de bibliothèque, puis l'ai construit, pris le .aar et l'ai décompressé. A pris le fichier classes.jar, qui contient la bibliothèque, et l'a ajouté dans un autre projet. Le projet reconnaît mon fichier et je peux y appeler des méthodes et des fonctions. Mon problème est que j'essaie d'appeler l'intention d'une activité de ma bibliothèque, comme ceci:Comment puis-je créer une intention pour une activité à partir d'une bibliothèque?

textView = (TextView) findViewById(R.id.text); 
    textView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(MainActivity.this, InCallActivity.class); 
      intent.putExtra("duration",20); 
      intent.putExtra("message","test"); 
      intent.putExtra("url","https://facetalk.vidyo-nl.com/mobile.html?roomdirect.html&key=QMvMp3eKTqOeLAWQ6HOvHqFJd0"); 
      intent.putExtra("test","true"); 
      startActivity(intent); 
     } 
    }); 

Mais je reçois un problème comme celui-ci:

08-10 15:02:41.730: E/AndroidRuntime(18572): Process: com.vidyo.facetalklibtest, PID: 18572 
08-10 15:02:41.730: E/AndroidRuntime(18572): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.vidyo.facetalklibtest/com.vidyo.vidyocore.activities.InCallActivity}; have you declared this activity in your AndroidManifest.xml? 
08-10 15:02:41.730: E/AndroidRuntime(18572): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1794) 
08-10 15:02:41.730: E/AndroidRuntime(18572): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1512) 
08-10 15:02:41.730: E/AndroidRuntime(18572): at android.app.Activity.startActivityForResult(Activity.java:3930) 
08-10 15:02:41.730: E/AndroidRuntime(18572): at android.app.Activity.startActivityForResult(Activity.java:3890) 
08-10 15:02:41.730: E/AndroidRuntime(18572): at android.app.Activity.startActivity(Activity.java:4213) 
08-10 15:02:41.730: E/AndroidRuntime(18572): at android.app.Activity.startActivity(Activity.java:4181) 
08-10 15:02:41.730: E/AndroidRuntime(18572): at com.vidyo.facetalklibtest.MainActivity$1.onClick(MainActivity.java:32) 
08-10 15:02:41.730: E/AndroidRuntime(18572): at android.view.View.performClick(View.java:5204) 
08-10 15:02:41.730: E/AndroidRuntime(18572): at android.view.View$PerformClick.run(View.java:21153) 
08-10 15:02:41.730: E/AndroidRuntime(18572): at android.os.Handler.handleCallback(Handler.java:739) 
08-10 15:02:41.730: E/AndroidRuntime(18572): at android.os.Handler.dispatchMessage(Handler.java:95) 
08-10 15:02:41.730: E/AndroidRuntime(18572): at android.os.Looper.loop(Looper.java:148) 
08-10 15:02:41.730: E/AndroidRuntime(18572): at android.app.ActivityThread.main(ActivityThread.java:5417) 
08-10 15:02:41.730: E/AndroidRuntime(18572): at java.lang.reflect.Method.invoke(Native Method) 
08-10 15:02:41.730: E/AndroidRuntime(18572): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
08-10 15:02:41.730: E/AndroidRuntime(18572): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
08-10 15:02:41.731: W/ActivityManager(787): Force finishing activity com.vidyo.facetalklibtest/.MainActivity 

Maintenant, je trouve quelque chose au sujet d'un manifeste -merger manifestmerger.enabled=true qui doit être défini dans le fichier project.properties. Mais je travaille avec AndroidStudio, pas Eclipse, donc je n'ai pas ce fichier. Comment puis-je résoudre ce problème?

Répondre

1

Comment puis-je résoudre ce problème?

Utilisez correctement le module de la bibliothèque, en ajoutant comme une dépendance de l'application soit par compile project(...), compile montrant l'artefact de la bibliothèque dans un dépôt ou dans un pincement un compile file(...) pointant vers le fichier AAR. Assurez-vous que l'AAR a un manifeste avec l'élément <activity> que vous recherchez.

OIEau, se débarrasser des éléments suivants:

a pris la .aar et décompressé. A pris le fichier classes.jar, qui contient la bibliothèque, et l'a ajouté dans un autre projet.

La fusion Manifest est automatique avec les modules de bibliothèque et AAR et Android Studio; il n'y a rien à activer spécifiquement.

+0

Ajouté la bibliothèque .aar comme ceci: https://stackoverflow.com/questions/16682847/how-to-manually -include-externe-aar-paquet-using-nouveau-gradle-android-build-syst –

1

Vous devez déclarer l'activité aussi dans l'application manifeste avec le chemin complet:

com.library.domain.activities.yourActivity 

Et cela pourrait fonctionner alors.

0

Et dans votre bibliothèque il suffit d'appeler cette option pour ouvrir MainActivity:

Intent intent = new Intent("com.example.main.mainactivity"); 
startActivity(intent);