我如何从图书馆制作活动意图?
问题描述:
我做了一个图书馆项目,然后建立它,拿起.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,因此我没有该文件。 我该如何解决这个问题?
答
我该如何解决这个问题?
正确使用库模块,通过两种compile project(...)
将其作为应用程序的依赖,compile
指向图书馆的神器在储存库,或在捏compile file(...)
指向AAR文件。确保AAR具有您寻求的<activity>
元素的清单。
督察,摆脱了以下内容:
接过.aar并解压它。接收包含该库的classes.jar文件,并将其添加到另一个项目中。
清单合并是自动使用库模块和AAR以及Android Studio;没有什么具体的启用。
答
您需要在应用程序清单的完整路径也宣布活动:
com.library.domain.activities.yourActivity
,它可能工作,然后。
答
而在您的图书馆只是把这个打开MainActivity:
Intent intent = new Intent("com.example.main.mainactivity");
startActivity(intent);
添加库.aar这样的: https://stackoverflow.com/questions/16682847/how-to-manually -include-外部AAR-使用-新gradle这个包,Android的集结SYST –