Incrular
非非非非非非
2019-08-14 13:00
采纳率: 46.2%
浏览 1.8k

安卓运行报错android.content.ActivityNotFoundException: Unable to find explicit activity class

以下是报错信息:

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.helloworld/android.widget.TextView}; have you declared this activity in your AndroidManifest.xml?

然后我搜索了一下得到的解决方案是没有将activity在mainfest.xml中注册,但是我已经注册过了,以下是xml中的代码

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.helloworld">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".TextViewActivity"
                android:label=""></activity>//注册第二个活动
        <activity android:name=".MainActivity">
            //前面的点是包名省略,
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>

以下是第二个活动的代码

package com.example.helloworld;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Paint;
import android.os.Bundle;
import android.widget.TextView;

public class TextViewActivity extends AppCompatActivity {


    private TextView tv2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_text_view);
        tv2 = findViewById(R.id.tv2);
        tv2.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);//加入划线
        tv2.getPaint().setAntiAlias(true);//去除锯齿
    }
}

以下是第二个活动的xml代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/tv_test1"
        android:textColor="#000000"
        android:textSize="30sp"
       />//在strings.xml中编辑好后,在这里调用
        //最大行数为一,且显示不下时出现省略号
    <TextView
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:maxLines="1"
        android:ellipsize="end"
        android:id="@+id/t2"
        android:text="哎哟不错哦!"
        android:textColor="#000000"
        android:textSize="30sp"/>
    //有额外选项或者下拉框(大致这个意思)
    <TextView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:drawableRight="@drawable/arrow3"
        android:text="for you and me"
        android:textColor="#000000"
        android:textSize="30sp" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="xxx"
        android:id="@+id/tv2"
        android:textColor="#000000"
        android:textSize="30sp"
        />
</LinearLayout>

以下是mainactivity的代码(之后补充的)


public class MainActivity extends AppCompatActivity {

    private Button btntv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);//设置内容视图
        btntv = findViewById(R.id.bt_tv1);
        btntv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //跳转到TextView演示界面
                Intent intent = new Intent(MainActivity.this, TextView.class);
                startActivity(intent);
            }
        });
    }
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • Incrular
    非非非非非非 2019-08-14 22:55
    已采纳

    问题出在mainactivity中

    public class MainActivity extends AppCompatActivity {
    
        private Button btntv;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);//设置内容视图
            btntv = findViewById(R.id.bt_tv1);
            btntv.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    //跳转到TextView演示界面
                    Intent intent = new Intent(MainActivity.this, TextViewActivity.class);
                    startActivity(intent);
                }
            });
        }
    }
    
    
    

    将跳转时的 Intent intent = new Intent(MainActivity.this, TextView.class);中的TextView改为TextViewActivity

    点赞 评论
  • u010862116
    我怕忘了这名字 2019-08-14 17:06

    贴上你跳转TextViewActivity的代码

    点赞 评论
  • shizairena
    Robin.Zhao 2019-08-14 21:24

    很显然是你启动activity的代码写的不对。
    打印中尝试启动这个activity自然是找不到的。
    com.example.helloworld/android.widget.TextView
    因为你注册的如下,实际上是这个activity:com.example.helloworld/com.example.helloworld.TextViewActivity
    android:label="">//注册第二个活动

    你可以将启动第二个activity的代码改为如下,注意导包:
    Intent intent = new Intent();
    intent.setClass(MainActivity.this,TextViewActivity.class);
    startActivity(intent);

    点赞 评论

相关推荐