2017-08-10 35 views
1

我做了一个图书馆项目,然后建立它,拿起.aar并解压缩它。 接收包含该库的classes.jar文件,并将其添加到另一个项目中。 该项目识别我的文件,我可以从中调用方法和函数。 我的问题是,我尝试调用的意图的活动,从我的图书馆,像这样:我如何从图书馆制作活动意图?

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); 
     } 
    }); 

,但我得到的一个问题是这样的:

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 

现在我发现有关清单的东西-merger manifestmerger.enabled=true需要在project.properties文件中设置。但我正在使用AndroidStudio,而不是Eclipse,因此我没有该文件。 我该如何解决这个问题?

回答

1

我该如何解决这个问题?

正确使用库模块,通过两种compile project(...)将其作为应用程序的依赖,compile指向图书馆的神器在储存库,或在捏compile file(...)指向AAR文件。确保AAR具有您寻求的<activity>元素的清单。

督察,摆脱了以下内容:

接过.aar并解压它。接收包含该库的classes.jar文件,并将其添加到另一个项目中。

清单合并是自动使用库模块和AAR以及Android Studio;没有什么具体的启用。

+0

添加库.aar这样的: https://stackoverflow.com/questions/16682847/how-to-manually -include-外部AAR-使用-新gradle这个包,Android的集结SYST –

1

您需要在应用程序清单的完整路径也宣布活动:

com.library.domain.activities.yourActivity 

,它可能工作,然后。

0

而在您的图书馆只是把这个打开MainActivity:

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