0

我已经按照 Eclipse ADT的描述构建并签名了我的 apk (通过创建新密钥导出和签名)。但是当出现“安装程序包错误”等错误时,无法在真机上安装。我没有 Android 设备并通过电子邮件将我的 apk 发送给朋友。我正在使用 AVD,一切都很好。有什么建议么?谢谢各位。

<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 安装良好,但如果选择 Open 则会出现错误(见截图)。之后该应用程序工作正常。但在平板电脑上,如果尝试打开应用程序,它会显示“应用程序已删除”。 在此处输入图像描述

UPD2:为第二个活动添加支持API 4+ 元标记,但没有效果

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

4 回答 4

1

您的示例缺少结束语</manifest>and 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>
于 2013-09-13T13:34:50.153 回答
1

您可能需要确保您的设备和您朋友的设备可以安装不是来自 Play 商店的应用程序。

这是您必须专门设置的功能,否则将无法安装 Play 商店之外的应用程序。

以下是如何设置它:

  1. 打开设置
  2. 找到安全设置(Pre 4.0 它在应用程序下)
  3. 查找显示未知来源或非市场应用的设置
  4. 启用该设置

之后一切都应该正常工作!

如果您仍然感到困惑,这里有一篇带图片的文章:)

于 2013-09-13T13:48:32.590 回答
0

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

于 2013-09-13T11:51:37.550 回答
0

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

于 2013-10-19T16:21:09.010 回答