问题描述
我有我的应用程序的要求。我有显示书籍的应用程序和基本是查看
读书的应用程序。我有两个问题:
- 是否有可能在起跑线一次同时安装APK?结果
- 是否可以集成两个APK?
当我点击的是我得到这个例外应用程序的第一个选项:
致命异常:主要
无法实例活动ComponentInfo {jp.co.atori.A12022411 / jp.co.atori.A12022411A.FSDMainLauncherActivity}:抛出java.lang.ClassNotFoundException:jp.co.atori.A12022411A.FSDMainLauncherActivity装载机dalvik.system.PathClassLoader [/数据/app/jp.co.atori.A12022411-1.apk]
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
在android.app.ActivityThread.access $ 1500(ActivityThread.java:117)
在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:931)
在android.os.Handler.dispatchMessage(Handler.java:99)
在android.os.Looper.loop(Looper.java:130)
在android.app.ActivityThread.main(ActivityThread.java:3683)
在java.lang.reflect.Method.invokeNative(本机方法)
在java.lang.reflect.Method.invoke(Method.java:507)
在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:839)
在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
在dalvik.system.NativeStart.main(本机方法)
抛出java.lang.ClassNotFoundException:引起jp.co.atori.A12022411A.FSDMainLauncherActivity装载机dalvik.system.PathClassLoader [/data/app/jp.co.atori.A12022411-1.apk]
在dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
在java.lang.ClassLoader.loadClass(ClassLoader.java:551)
在java.lang.ClassLoader.loadClass(ClassLoader.java:511)
在android.app.Instrumentation.newActivity(Instrumentation.java:1021)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
改变清单之后,它看起来像:
<活动
机器人:名字=jp.co.atori.A12022411.MainActivity
机器人:标签=@字符串/ APP_NAME>
&所述;意图滤光器>
<作用机器人:名字=android.intent.action.MAIN/>
<类机器人:名字=android.intent.category.LAUNCHER/>
&所述; /意图滤光器>
&所述;意图滤光器>
<作用机器人:名字=android.intent.action.VIEW/>
<类机器人:名字=android.intent.category.DEFAULT/>
<类机器人:名字=android.intent.category.BROWSABLE/>
<数据机器人:计划=Aircel清-bookshelfviewer/>
&所述; /意图滤光器>
< /活性GT;
<活动
机器人:名字=jp.co.atori.A12022411A.FSDMainLauncherActivity
机器人:标签=@字符串/ APP_NAME
机器人:taskAffinity =com.jp.co.atori.A12022411A.FSDMainLauncherActivity.viewer
机器人:权限=com.smartebook.android.fsdreader.permission
机器人:主题=@安卓风格/ Theme.NoTitleBar>
&所述;意图滤光器>
<作用机器人:名字=FSDREADERAPPLICATION/>
<类机器人:名字=android.intent.category.DEFAULT/>
<数据机器人:mime类型=文/ */>
&所述; /意图滤光器>
< /活性GT;
您可以简单地打包一切,一个应用程序(APK),并提供2个独立的发射器,一个用于阅读器,一个用于查看器。你会表现看起来是这样的:
<活动
机器人:名字=。ViewerActivity
机器人:图标=@绘制/ viewer_logo
机器人:标签=@字符串/ viewer_activity_title>
&所述;意图滤光器>
<作用机器人:名字=android.intent.action.MAIN/>
<类机器人:名字=android.intent.category.LAUNCHER/>
&所述; /意图滤光器>
< /活性GT; <活动
机器人:名字=。ReaderActivity
机器人:taskAffinity =com.yourapp.reader
机器人:图标=@绘制/ reader_logo
机器人:标签=@字符串/ reader_activity_title>
&所述;意图滤光器>
<作用机器人:名字=android.intent.action.MAIN/>
<类机器人:名字=android.intent.category.LAUNCHER/>
&所述; /意图滤光器>
< /活性GT;
因此,用户在安装应用程式后,他们会看到2应用程序图标:一个是带你到你的阅读器,一个带你到你的浏览器。这是2项指向相同的应用程序(但它似乎他们是2个不同的应用程序的用户)。
I have a requirement for my app. I have an app for displaying books and an app for reading book basically a Viewer
. I have two questions :
- Is it possible to install both apk at once at the starting ?
- Is it possible to integrate two apk ?
And when i click on the first option that is the app i am getting this exception:
FATAL EXCEPTION: main
Unable to instantiate activity ComponentInfo{jp.co.atori.A12022411/jp.co.atori.A12022411A.FSDMainLauncherActivity}: java.lang.ClassNotFoundException: jp.co.atori.A12022411A.FSDMainLauncherActivity in loader dalvik.system.PathClassLoader[/data/app/jp.co.atori.A12022411-1.apk]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: jp.co.atori.A12022411A.FSDMainLauncherActivity in loader dalvik.system.PathClassLoader[/data/app/jp.co.atori.A12022411-1.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
After changing manifest it looks like:
<activity
android:name="jp.co.atori.A12022411.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="aircel-bookshelfviewer" />
</intent-filter>
</activity>
<activity
android:name="jp.co.atori.A12022411A.FSDMainLauncherActivity"
android:label="@string/app_name"
android:taskAffinity="com.jp.co.atori.A12022411A.FSDMainLauncherActivity.viewer"
android:permission="com.smartebook.android.fsdreader.permission"
android:theme="@android:style/Theme.NoTitleBar" >
<intent-filter>
<action android:name="FSDREADERAPPLICATION" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/*" />
</intent-filter>
</activity>
You could simply package everything as one application (APK), and provide 2 separate launchers, one for the Reader, one for the Viewer. Your manifest would look something like this:
<activity
android:name=".ViewerActivity"
android:icon="@drawable/viewer_logo"
android:label="@string/viewer_activity_title" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ReaderActivity"
android:taskAffinity="com.yourapp.reader"
android:icon="@drawable/reader_logo"
android:label="@string/reader_activity_title" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
So after users have installed your app, they will see 2 application icons: one that takes you to your Reader, one that takes you to your Viewer. These are 2 entry points to the same app (but it appears to the user that they are 2 different apps).
这篇关于如何安装两个APK一次?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!