无法在设备上正确安装APK

时间:2013-09-13 11:46:11

标签: android android-manifest android-launcher

我建造了&通过Eclipse ADT签署我的apk为it is describes(通过创建新密钥导出并签名)。但是在发生错误时无法在真实设备上安装,例如“安装程序包错误”。我没有Android设备&通过电子邮件将我的apk发送给朋友我正在使用AVD而且每一件都很好。有什么建议? Thanx家伙。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.XXXX.YYYY"
android:versionCode="0"
android:versionName="0.9.2" android:installLocation="internalOnly">

<uses-sdk
    android:minSdkVersion="13"
    android:targetSdkVersion="17" />    
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" 
    android:hardwareAccelerated="true" 
    android:permission="android.permission.INTERNET" 
    android:allowBackup="true">
    <activity
        android:name="com.XXXX.YYYY.ActivityMain"
        android:label="@string/main_activity_title" 
        android:launchMode="singleTop" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="com.XXXX.YYYY.ActivityDetails"
        android:parentActivityName="com.XXXX.YYYY.ActivityMain"
        android:excludeFromRecents="true"
        android:configChanges="orientation|screenSize">            
    </activity>
</application></manifest>

UPD :apk安装良好,但如果选择打开则会出现错误(请参见屏幕截图)。该应用程序正常工作后。但在平板电脑上尝试打开应用程序时会显示“已删除应用”。 enter image description here

UPD2 :为第二项活动添加支持API 4+ meta tag,但不起作用

<meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.XXXX.YYYY.ActivityMain" />

4 个答案:

答案 0 :(得分:1)

您的示例错过了结束</manifest>android:enabled。我不确定后者是否会阻止设备完全安装它,但第一个会。

我在使用过去的完整活动名称时也遇到了问题,因此您可能希望尝试使用简化它们来查看它是否有帮助。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.XXXX.YYYY"
    android:versionCode="0"
    android:versionName="0.9.2" android:installLocation="internalOnly">

    <uses-sdk
        android:minSdkVersion="13"
        android:targetSdkVersion="17" />    

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" 
        android:hardwareAccelerated="true" 
        android:allowBackup="true">

        <activity
            android:name=".ActivityMain"
            android:label="@string/main_activity_title"
            android:enabled="true" 
            android:permission="android.permission.INTERNET"
            android:launchMode="singleTop" >

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name=".ActivityDetails"
            android:parentActivityName=".ActivityMain"
            android:excludeFromRecents="true"
            android:configChanges="orientation|screenSize">            
        </activity>
    </application>
</manifest>

答案 1 :(得分:1)

您可能需要确保您的设备和朋友的设备可以安装非Play商店的应用。

这是您必须专门设置的功能,否则不会安装Play商店外的应用。

以下是设置方法:

  1. 打开设置
  2. 查找安全设置(Pre 4.0,它位于应用程序下)
  3. 查找显示未知来源或非市场应用
  4. 的设置
  5. 启用该设置
  6. 之后一切都应该有用!

    Here是一篇带有图片的文章,如果你仍然感到困惑的话:)

答案 2 :(得分:0)

设备上是否允许“安全”下的“未知来源”选项?

答案 3 :(得分:0)

我的问题是Manifest上的重复互联网许可请求!当我从活动中删除它时,应用程序正常运行。