简体   繁体   English

Android清单文件| 每个班级都有错误

[英]Android Manifest File | Error with every Class

This is my Android manifest File. 这是我的Android清单文件。 I recently started to continue thmy work but in every class nearly any methods aren't working. 我最近开始继续我的工作,但在每堂课中,几乎所有方法都不起作用。 I started to inspect my Android Manifest file with the outcome of an error for every android:name="". 我开始检查我的Android清单文件,并为每个android:name =“”的错误结果。 What does that mean and how do I fix this? 这是什么意思,我该如何解决?

` `

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher_mt"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_mt_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".StartHome" //Error ---> ... not assignable to android.app.activity

        android:label="@string/title_activity_start_home"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".NavDrawer"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

             <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".Inton"
        android:label="@string/title_activity_inton"
        android:theme="@style/AppTheme.NoActionBar">

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

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

</activity>
    <activity
        android:name=".Metronome"
        android:label="@string/title_activity_metronome"
        android:theme="@style/AppTheme.NoActionBar" />
    <activity
        android:name=".Stats"
        android:label="@string/title_activity_stats"
        android:theme="@style/AppTheme.NoActionBar"></activity>
</application>

` `

Well for version 23+ I use this on the main activity 对于版本23+,我在主要活动中使用它

private static final int REQUEST= 112;
Context mContext = this;

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

    if (Build.VERSION.SDK_INT >= 23)
    {
        String[] PERMISSIONS = {android.Manifest.permission.INTERNET,
                android.Manifest.permission.READ_EXTERNAL_STORAGE,
                android.Manifest.permission.WRITE_EXTERNAL_STORAGE
        };


        if (!hasPermissions(mContext, PERMISSIONS))
        {
            ActivityCompat.requestPermissions((Activity) mContext, PERMISSIONS, REQUEST );
        }
        else
        {
            callNextActivity();
        }
    }
    else
    {
        callNextActivity();
    }

}

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)
{
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    switch (requestCode)
    {
        case REQUEST:
        {
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
            {
                callNextActivity();
            }
            else
            {
                Toast.makeText(mContext, "PERMISSIONS Denied", Toast.LENGTH_LONG).show();
            }
        }
    }
}

private static boolean hasPermissions(Context context, String... permissions)
{
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null)
    {
        for (String permission : permissions)
        {
            if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED)
            {
                return false;
            }
        }
    }
    return true;
}

public void callNextActivity()
{
    Intent ss = new Intent(MainActivity.this, MainProgram.class);
    ss.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    ss.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    ss.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
    ss.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
    startActivity(ss);
    finish();
}

This part 这部分

android.Manifest.permission.READ_EXTERNAL_STORAGE,
android.Manifest.permission.WRITE_EXTERNAL_STORAGE

is where I ask for the permissions to the user, if I want camera permissions also I put it like this: 是我向用户请求权限的地方,如果我也想要摄像头权限,我也会这样输入:

android.Manifest.permission.READ_EXTERNAL_STORAGE,
android.Manifest.permission.WRITE_EXTERNAL_STORAGE,
android.Manifest.permission.CAMERA

Then I just call the next activity if all permissions are granted on 然后,如果所有权限都授予,我就调用下一个活动

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)
{
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    switch (requestCode)
    {
        case REQUEST:
        {
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
            {
                callNextActivity();
            }
            else
            {
                Toast.makeText(mContext, "PERMISSIONS Denied", Toast.LENGTH_LONG).show();
            }
        }
    }
}

If all permissions are grated it will go inside the IF and call the function to start the next activity with the permissions granted. 如果所有权限都被磨碎,它将进入IF并调用该函数以授予的权限开始下一个活动。

For the Manifest: 对于清单:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Remember the code is for 23+ the manifest 22 or lower, so having them both it will be good 请记住,代码适用于23+清单22或更低的清单,因此同时拥有它们将是一件好事

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM