gpt4 book ai didi

java - android sdk,错误 : java. lang.SecurityException:权限拒绝:尝试更改组件状态

转载 作者:太空宇宙 更新时间:2023-11-04 12:07:23 31 4
gpt4 key购买 nike

基本上,我正在尝试删除应用程序的图标并让它仍然安装,使用以下示例:http://www.helloandroid.com/tutorials/removing-app-icon-launcher

我尝试使用 android studio 运行的代码是:

package com.example.root.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import android.content.ComponentName ;

import android.content.pm.PackageManager ;

public class java_test extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_java_test);

ComponentName componentToDisable =
new ComponentName("com.nll.acr",
"com.nll.acr.LauncherActivity");

getPackageManager().setComponentEnabledSetting(
componentToDisable,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);

}
}

自动生成的 list xml 文件包含:

<?xml version="1.0" encoding="utf-8"?>   
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_java_test"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:exported="true"
tools:context="com.example.root.myapplication.java_test">



<TextView
android:exported="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
</RelativeLayout>

我不断收到的错误是

EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.root.myapplication/com.example.root.myapplication.java_test}: java.lang.SecurityException: Permission Denial: attempt to change component state from pid=1300, uid=10154, package uid=10150
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2265)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2315)

...

我查看了互联网,发现我必须在 xml 中添加一些“android:enabled=”true”',但这只会弹出另一个错误:

android.view.InflateException:二进制 XML 文件第 15 行:膨胀类服务时出错

更新:我已经注释掉了该行

   getPackageManager().setComponentEnabledSetting(
componentToDisable,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);

现在一切正常

但我需要该行才能工作,以便能够删除快捷方式

更新3如果我尝试这个:

然后编译器说缺少“layout_height”和“layout_width”

如果我尝试:

    <activity
android:name=".LoginActivity"
android:label="@string/app_name"
android:windowSoftInputMode="adjustResize|stateHidden"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<TextView
android:exported="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
</RelativeLayout>

它提示“错误夸大类(class) Activity ”

更新4:

如果我尝试:

android:layout_width="match_parent"
android:layout_height="match_parent"

android:name=".LoginActivity"
android:label="@string/app_name"
android:windowSoftInputMode="adjustResize|stateHidden"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

然后编译器说缺少“layout_height”和“layout_width”

最佳答案

试试这个

<activity
android:name=".LoginActivity"
android:label="@string/app_name"
android:windowSoftInputMode="adjustResize|stateHidden"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

manifest 中使用 android:exported="true" 而不是在 layout

关于java - android sdk,错误 : java. lang.SecurityException:权限拒绝:尝试更改组件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40220647/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com