【发布时间】:2016-01-20 02:26:13
【问题描述】:
我想创建和 android Project 让我们说 MyApplication。
MyApplication 有一个活动 MyActivity.java。
我想要其他应用程序让我们说 NotMyApplication 来启动此活动,而无需在设备上安装 MyApplication。
我想为这种情况做的是我想以某种方式将 MyApplication 转换为 jar/lib,这样我就不需要安装也不需要共享代码。
并在 NotMyApplication 中导入 MyActivity.java 并创建一个 Intent,如下所示:
**Intent in = new Intent(MyActivity.class,NotMyActivity.this);
startActivity(in);**
我怎样才能完成整个过程。 有人可以指导 Android Studio 的 Stepwise 吗?
[编辑]
我在 Eclipse 中创建了 Jar 文件,然后将其复制到了 android studio 中的 libs 文件夹中。 比在 gradle 中添加 complie 语句:imported jar as :
导入 com.example.testmylibs.MyClassToTest;
比发起活动为:
Intent in = new Intent(getApplicationContext(),com.example.testmylibs.MyClassToTest.class); startActivity(in);
它仍然给出致命的:
android.content.ActivityNotFoundException:找不到显式活动类 {com.myapplication/com.example.testmylibs.MyClassToTest};您是否在 AndroidManifest.xml 中声明了此活动?
[编辑]
如果我在 NotMyApplication 的 AndroidManifest.xml 中本地声明为:
**<activity android:name="com.example.testmylibs.MyClassToTest" >
</activity>**
比以下异常来:
java.lang.NoClassDefFoundError: 解析失败: Lcom/example/testmylibs/R$layout; . . 引起:java.lang.ClassNotFoundException:在路径上找不到类“com.example.testmylibs.R$layout”:DexPathList [[zip file“/data/app/com.myapplication-2/base.apk”] ,nativeLibraryDirectories=[/vendor/lib64, /system/lib64]]
【问题讨论】:
-
对于 NotMyApplication,您必须添加在 jar/lib 中编译的活动。就像您展示的代码 sn-p 一样,应用程序应该使用 Intent 来启动 MyApplication 活动并让 MyApplication 处理其余的事情。也检查一下:stackoverflow.com/questions/16763090/…
-
我在 Eclipse 中创建了 Jar 文件,然后将其复制到了 android studio 中的 libs 文件夹中。比在 gradle 中添加 complie 语句:imported jar as : import com.example.testmylibs.MyClassToTest;比启动活动为: Intent in = new Intent(getApplicationContext(),com.example.testmylibs.MyClassToTest.class);开始活动(在);它仍然给出致命的:android.content.ActivityNotFoundException:无法找到明确的活动类 {com.myapplication/com.example.testmylibs.MyClassToTest};您是否在 AndroidManifest.xml 中声明了此活动?
-
关于布局错误,试试看jar文件中是否复制了res文件,很可能没有。对于未找到的类,您可以尝试在没有“getApplicationContext()”的情况下获取意图吗?是这样的吗?
标签: java android android-activity android-studio