【发布时间】:2014-12-25 02:23:09
【问题描述】:
我创建了一个使用PackageManager 来安装下载的APK 文件的类。但是当我尝试安装一个时,我在logcat 中收到以下消息:
12-25 03:11:32.014: W/PackageParser(11192): No actions in intent filter at /storage/emulated/0/download/test/test.apk Binary XML file line #22
我使用以下代码安装应用程序:
case R.id.view_application_install: {
final File apk = Util.getApk(downloadedItem.getDirectory());
final Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(apk), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
这是清单的一部分:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="org.catares.android"
android:versionName="@string/app_version"
android:versionCode="9">
<uses-sdk
android:minSdkVersion="4"
android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RAISED_THREAD_PRIORITY" />
<application
android:icon="@drawable/icon"
android:label="@string/app_name">
<activity
android:configChanges="keyboard|keyboardHidden|orientation"
android:name=".Main"
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=".application.ApplicationActivity"
android:configChanges="keyboard|keyboardHidden|orientation"
android:exported="false">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".application.ImageViewActivity"
android:configChanges="keyboard|keyboardHidden|orientation"
android:exported="false">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".categories.CategoriesActivity"
android:configChanges="keyboard|keyboardHidden|orientation"
android:exported="false">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:configChanges="keyboard|keyboardHidden|orientation"
android:name=".forum.ViewForumActivity"
android:exported="false" >
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".latest.LatestReleasesActivity"
android:configChanges="keyboard|keyboardHidden|orientation"
android:exported="false">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".myapplications.MyApplicationsActivity"
android:configChanges="keyboard|keyboardHidden|orientation"
android:exported="false">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".myapplications.ViewApplicationActivity"
android:configChanges="keyboard|keyboardHidden|orientation"
android:exported="false">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".myapplications.installed.UpdateSearchResultActivity"
android:configChanges="keyboard|keyboardHidden|orientation"
android:exported="false">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".search.SearchActivity"
android:configChanges="keyboard|keyboardHidden|orientation"
android:exported="false" >
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".application.replies.RepliesActivity"
android:configChanges="keyboard|keyboardHidden|orientation"
android:exported="false" >
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".settings.SettingsActivity"
android:configChanges="keyboard|keyboardHidden|orientation"
android:exported="false" >
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".downloads.DownloadsActivity"
android:configChanges="keyboard|keyboardHidden|orientation"
android:exported="false" >
<intent-filter>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<service android:name=".common.UpdaterService"/>
<service android:name=".common.downloads.DownloaderService"/>
</application>
</manifest>
在logcat 中显示错误的第 22 行是:
<action android:name="android.intent.action.MAIN" />
【问题讨论】:
-
您需要将
android:name="Main"更改为“.Main”或完全限定的包名。 -
@David Wasser 我这样做并进行了编辑,但仍然无法正常工作。我感觉我忘记了什么。
-
此版本的清单 sn-p 格式错误(例如,额外的
<activity) - 这真的是您的 test.apk 中的版本吗? -
@laalto 我现在提供了完整的清单,请参阅编辑。
标签: android android-intent android-install-apk