找不到默认活动-无法解决此问题

时间:2018-11-01 17:38:56

标签: java android kotlin android-manifest

在运行新应用程序时,我找不到默认活动,在清单中也找不到问题。我试图阅读很多有关此的内容,但是这些类似的问题似乎都没有帮助我。

这就是我的清单:

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

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

    <application
            android:allowBackup="true"
            android:icon="@mipmap/minionicon"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/minionicon"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
        <activity android:name=".MainActivity"
                  android:label="@string/app_name">

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

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

</manifest>

编辑://登录类

我试图使缓存无效/重启,但这没有用。 因此,出现了登录类,希望我们可以一起找到解决此错误的方法。

package com.example.pear.game
    import android.content.Intent
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Toast
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.database.FirebaseDatabase
import kotlinx.android.synthetic.main.activity_login.*
import java.util.*

class Login : AppCompatActivity() {

    private var mAuth:FirebaseAuth?=null

    private var database=FirebaseDatabase.getInstance()
    private var myRef=database.reference

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_login)
        mAuth=FirebaseAuth.getInstance()

    }

    fun buLoginEvent(view:View){

        LoginToFirebase(etUser.text.toString(),etPassword.text.toString())
    }

    fun LoginToFirebase(email:String,password:String){

        mAuth!!.createUserWithEmailAndPassword(email,password)
            .addOnCompleteListener(this){task ->

                if(task.isSuccessful){
                    Toast.makeText(applicationContext,"Successful login", Toast.LENGTH_LONG).show()

                    var currentUser=mAuth!!.currentUser
                    // Save in database
                    if(currentUser!=null) {
                        myRef.child("Users").child(SplitString(currentUser.email.toString())).child("Request")
                            .setValue(currentUser.uid).toString()
                    }
                    LoadMain()

                }else
                {
                    Toast.makeText(applicationContext,"Login failed", Toast.LENGTH_LONG).show()
                }
            }
    }

    override fun onStart() {
        super.onStart()
        LoadMain()
    }

    fun LoadMain(){
        var currentUser=mAuth!!.currentUser

        if(currentUser!=null) {
            var intent = Intent(this, MainActivity::class.java)
            intent.putExtra("email", currentUser.email)
            intent.putExtra("uid", currentUser.uid)

            startActivity(intent)
        }
    }
}
fun SplitString(str:String):String{
    var splitStr=str.split('@')
    return splitStr[0]
}

3 个答案:

答案 0 :(得分:0)

此错误是针对IDE的,请尝试替换此错误:

    <activity android:name=".Login">

为此:

    <activity android:name="com.example.pear.game.Login">

答案 1 :(得分:0)

首先尝试从File-> Invalide Caches / Restart并从同一菜单中使Gradle文件与项目同步来使缓存无效。

这可能是一个愚蠢的问题,但重要的是,此活动是否扩展了AppCompatActivity?如果不是这样,那就是它在清单

中不可见的原因

答案 2 :(得分:0)

点击Run/Edit Configurations...
选择app,然后在General标签中
Launch Options下,确保
Launch:中,所选选项为
Default Activity