如何安装两个APK一次? [英] How to install two apk at once?

查看:207
本文介绍了如何安装两个APK一次?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有我的应用程序的要求。我有显示书籍的应用程序和基本是查看读书的应用程序。我有两个问题:


  1. 是否有可能在起跑线一次同时安装APK?结果

  2. 是否可以集成两个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 :

  1. Is it possible to install both apk at once at the starting ?
  2. 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一次?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆