Android 我怎样才能对图书馆中的活动作出意向?

Android 我怎样才能对图书馆中的活动作出意向?,android,android-intent,android-manifest,android-library,Android,Android Intent,Android Manifest,Android Library,我做了一个图书馆项目,然后建立了它,用.aar解压了它。 获取包含库的classes.jar文件,并将其添加到另一个项目中。 项目识别我的文件,我可以从中调用方法和函数。 我的问题是,我试图从我的库中调用活动的意图,如下所示: textView = (TextView) findViewById(R.id.text); textView.setOnClickListener(new View.OnClickListener() { @Override p

我做了一个图书馆项目,然后建立了它,用.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
但我遇到了这样一个问题:

 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
现在我发现了一些关于清单合并的信息,需要在project.properties文件中设置。但我使用的是AndroidStudio,而不是Eclipse,因此我没有该文件。 如何解决此问题

如何解决此问题

正确使用库模块,通过指向存储库中库的工件的
编译项目(…)
编译
,或在必要时指向AAR文件的
编译文件(…)
将其添加为应用程序的依赖项。确保AAR有一个清单,其中包含您要查找的
元素

注意,摆脱以下情况:

拿着.aar把拉链拉开。获取包含库的classes.jar文件,并将其添加到另一个项目中

通过库模块、AAR和Android Studio,清单合并是自动的;没有什么需要特别启用的

如何解决此问题

正确使用库模块,通过指向存储库中库的工件的
编译项目(…)
编译
,或在必要时指向AAR文件的
编译文件(…)
将其添加为应用程序的依赖项。确保AAR有一个清单,其中包含您要查找的
元素

注意,摆脱以下情况:

拿着.aar把拉链拉开。获取包含库的classes.jar文件,并将其添加到另一个项目中


通过库模块、AAR和Android Studio,清单合并是自动的;没有要特别启用的内容。

您也需要在应用程序清单中声明活动,并提供完整路径:

com.library.domain.activities.yourActivity

然后它可能会工作。

您也需要在应用程序清单中使用完整路径声明活动:

com.library.domain.activities.yourActivity
<activity
    android:name=".MainActivity">
       <intent-filter>
            <action android:name="com.example.main.mainactivity" />
           <category android:name="android.intent.category.DEFAULT" />
      </intent-filter>
</activity>

然后它可能会工作。

添加了库。aar如下:添加了库。aar如下:
<activity
    android:name=".MainActivity">
       <intent-filter>
            <action android:name="com.example.main.mainactivity" />
           <category android:name="android.intent.category.DEFAULT" />
      </intent-filter>
</activity>