S.P*_*S.P 86 android manifest failed-installation
我正在开发一个小应用程序,列出Android设备上存在/安装的所有应用程序.但是当我尝试运行代码时,我收到了以下错误.
安装错误:INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
请任何人帮我解决这个错误.
And*_*ndy 67
这个错误可能还有另一个原因.属性
android:taskAffinity="string"
Run Code Online (Sandbox Code Playgroud)
应始终以点开头,例如:
android:taskAffinity=".string"
Run Code Online (Sandbox Code Playgroud)
Baj*_*dda 51
在Android 12或Android S中[您可以检查将targetSdkVersion“S”设置为targetSdkVersion 30,它将正常工作]。为此,为了工作,我们需要将所有依赖项更新到最新的依赖项,并且必须添加 -
\nandroid:exported="true"\nRun Code Online (Sandbox Code Playgroud)\n到在 app\xe2\x80\x99s AndroidManifest.xml 文件中声明了意图过滤器的任何活动、活动别名、服务或接收器组件。因为 Android 12 中的行为几乎没有改变。
\n小智 41
我遇到了这个错误,因为我的包名中有大写字母
Com.Example.packagename
Run Code Online (Sandbox Code Playgroud)
在我改变它之后
com.example.packagename
Run Code Online (Sandbox Code Playgroud)
它解决了
Sam*_*man 29
添加
android:exported="true"
Run Code Online (Sandbox Code Playgroud)
到 Manifest.xml 中的活动
像这样;
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
Rib*_*ibo 28
当PackageParser.java检测到manifest.xml文件中存在大量错误时,将返回INSTALL_PARSE_FAILED_MANIFEST_MALFORMED错误代码.
要隔离错误,请查看logcat(当您执行'adb install foo.apk'命令时).在我遇到的问题中,logcat包含:
W/ActivityManager( 360): No content provider found for permission revoke: file:///data/local/tmp/foo.apk
D/Finsky (32707): [1] PackageVerificationReceiver.onReceive: Verification requested, id = 6
D/Finsky (32707): [1] WorkerTask.onPreExecute: Verification Requested for id = 6, data=file:///data/local/tmp/foo.apk flags=112 fromVerificationActivity=false
W/PackageParser(32707): /data/local/tmp/foo.apk (at Binary XML file line #214): <provider> does not include authorities attribute
D/Finsky (32707): [716] PackageVerificationService.getPackageInfo: Cannot read archive for file:///data/local/tmp/foo.apk in request id=6
D/Finsky (32707): [1] PackageVerificationReceiver.onReceive: Verification requested, id = 6
W/ActivityManager( 360): No content provider found for permission revoke: file:///data/local/tmp/foo.apk
I/PackageManager( 360): Copying native libraries to /data/app-lib/vmdl1205566381
W/PackageParser( 360): /data/app/vmdl1205566381.tmp (at Binary XML file line #214): <provider> does not include authorities attribute
Run Code Online (Sandbox Code Playgroud)
在上面的第四行中,您可以看到PackageParser抱怨manifest.xml文件"<provider>的第214行不包含authority属性".请参阅PackageParser中返回该错误代码的所有案例的下面列表.(PackageParser是唯一生成PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED错误代码的类)
在我的例子中,消息"<provider>不包括authority属性"由parseApplication调用的parseProvider函数中的PackagerParser.java的第2490行产生.
从4.1.1版本的frameworks/base/core/java/android/content/pm/PackageParser.java中,在这些方法的这些行中引用了PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED.如果源代码行号后跟带引号的字符串,该字符串是在logcat中打印的消息.如果行号后跟一个Java表达式,该表达式是导致返回该错误代码的代码,则应调查该函数以查看导致返回错误消息的原因.在一些情况下,我无法将错误原因隔离到一个特定的方法调用.
in parsePackage:
536: (only used in 'core apps' with no 'pkg')
973: "<manifest> has more than one <application>"
1275: "Bad element under <manifest>: " --if RIGID_PARSER
in parsePermissionGroup:
1464: !parsePackageItemInfo(owner, perm.info, outError,
"<permission-group>", sa,
com.android.internal.R.styleable.AndroidManifestPermissionGroup_name,
com.android.internal.R.styleable.AndroidManifestPermissionGroup_label,
com.android.internal.R.styleable.AndroidManifestPermissionGroup_icon,
com.android.internal.R.styleable.AndroidManifestPermissionGroup_logo)
1482: !parseAllMetaData(res, parser, attrs, "<permission-group>", perm,
outError)
in parsePermission:
1506: !parsePackageItemInfo(owner, perm.info, outError,
"<permission>", sa,
com.android.internal.R.styleable.AndroidManifestPermission_name,
com.android.internal.R.styleable.AndroidManifestPermission_label,
com.android.internal.R.styleable.AndroidManifestPermission_icon,
com.android.internal.R.styleable.AndroidManifestPermission_logo)
1530: "<permission> does not specify protectionLevel"
1541: "<permission> protectionLevel specifies a flag but is not based on signature type"
1548: !parseAllMetaData(res, parser, attrs, "<permission>", perm, outError)
in parsePersmissionTree:
1572: !parsePackageItemInfo(owner, perm.info, outError,
"<permission-tree>", sa,
com.android.internal.R.styleable.AndroidManifestPermissionTree_name,
com.android.internal.R.styleable.AndroidManifestPermissionTree_label,
com.android.internal.R.styleable.AndroidManifestPermissionTree_icon,
com.android.internal.R.styleable.AndroidManifestPermissionTree_logo)
1585: "<permission-tree> name has less than three segments: "+perm.info.name
1595: !parseAllMetaData(res, parser, attrs, "<permission-tree>", perm, outError)
in parseInstrumentation:
1625: new Instrumentation(mParseInstrumentationArgs, new InstrumentationInfo())
1648: "<instrumentation> does not specify targetPackage"
1654: !parseAllMetaData(res, parser, attrs, "<instrumentation>", a, outError)
in parseApplication:
1678: buildClassName(pkgName, name, outError) == null
1851: (Set by various other functions)
1869: parseActivity(owner, res, parser, attrs, flags, outError, false, hardwareAccelerated) == null
1878: parseActivity(owner, res, parser, attrs, flags, outError, true, false) == null
1887: parseService(owner, res, parser, attrs, flags, outError) == null
1896: parseProvider(owner, res, parser, attrs, flags, outError) == null
2484: "Heavy-weight applications can not have providers in main process"
2890: "<provider> does not incude authorities attribute"
1905: parseActivityAlias(owner, res, parser, attrs, flags, outError) == null
1917: parseMetaData(res, parser, attrs, owner.mAppMetaData, outError) == null
1969: "Bad element under <application>: "+tagName
Run Code Online (Sandbox Code Playgroud)
遗憾的是你必须在logcat和源代码中找到解决问题原因的方法.
小智 10
检查清单文件中的活动名称
或主要活动/类中的包名称
<activity android:name="MainActivity"></activity>
Run Code Online (Sandbox Code Playgroud)
Daw*_*ozd 10
我有同样的问题,但当我调用这样的过程时:
<service
android:name="com.dexode.tama.AppService"
android:process="screen" >
</service>
Run Code Online (Sandbox Code Playgroud)
当我改为:
<service
android:name="com.dexode.tama.AppService"
android:process=":screen" >
</service>
Run Code Online (Sandbox Code Playgroud)
一切都开始了.
我的问题是我写过(注意 - 与_):
<meta_data ... />
<!-- instead of -->
<meta-data ... />
Run Code Online (Sandbox Code Playgroud)
根据活动.这也可能是您的问题的原因.
就我而言,我指的是使用如下属性的图标:
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="?attr/ic_notify" />
Run Code Online (Sandbox Code Playgroud)
而不是可绘制的:
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/ic_notify" />
Run Code Online (Sandbox Code Playgroud)
我在几个地方使用这个属性,但它似乎在清单中不起作用。
小智 5
<activity android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
如果您使用的是目标API 31+,则必须添加导出为true
| 归档时间: |
|
| 查看次数: |
85495 次 |
| 最近记录: |