【问题标题】:Class not found in kotlin?在 kotlin 中找不到类?
【发布时间】:2017-05-08 11:33:41
【问题描述】:
 Intent intent=new Intent(MainActivity.this, ContactListActivity.class);
                        startActivity(intent);

MainActivity.this 是用 java 编写的,ContactListActivity 是用 kotlin 编写的。我正在尝试调用 ContactListActivty 但最终收到错误

 have you declared this activity in your AndroidManifest.xml?

我还在清单文件中添加了活动。

 <activity android:name="Chat_Activity$Connections$ContactListActivity"
            android:parentActivityName=".MainActivity">
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".MainActivity"/>
        </activity>

编辑:

ContactListActivity.kt

class ContactListActivity : AppCompatActivity() {

    private var mBroadcastReceiver: BroadcastReceiver? = null
    private val TAG:String="ContactListActivity"

    //static variable
    object Obz{
        @JvmStatic val GetContactListFromServer:String="Contact List"
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(layout.activity_contact_list)


        title = "Contact list"

        contact_list.hasFixedSize()
        contact_list.layoutManager= LinearLayoutManager(this)

        getContactListAndNextActivity()
    }

    fun getContactListAndNextActivity(){

        contact_list.adapter= ContactListAdaptor(applicationContext, dbHelper(applicationContext).getContactList())

    }

}

【问题讨论】:

  • ContactListActivity 类是如何以及在哪里声明的?
  • 它在 Manifest 中声明。 @miensol
  • 你能告诉我们你有class ContactListActivity的源代码吗?
  • @miensol 我已在相关编辑部分下添加了 ContactListActivity 类。

标签: java android kotlin classnotfoundexception classnotfound


【解决方案1】:

您的清单 name 条目看起来很可疑。

android:name="Chat_Activity$Connections$ContactListActivity"

我不确定完全限定的路径名​​是什么,但请尝试:

android:name=".ContactListActivity"

android:name="&lt;qualified.path.to&gt;.ContactListActivity"

【讨论】:

  • @AnkurKhandelwal 你试过什么?你需要更具体。
  • 另外,在您添加此 Activity 之前,该应用程序是否编译了其他 Kotlin 代码?也许您还没有在项目中正确配置 Kotlin?
  • 我已经试过你的答案了。即将清单类名称 android:name="Chat_Activity$Connections$ContactListActivity" 替换为 android:name=".ContactListActivity"
  • 您是否也尝试过“完全限定名称”?
  • 我已经按照我在其他项目中的配置方式配置了 kotlin
【解决方案2】:

我遇到了类似的问题,尝试重命名您的活动,为 ex: 添加 1 个符号并在您的清单中 写

android:name=".ContactListActivity1"

之后您可以再次重命名并将其设置为旧名称

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-14
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    • 2023-01-29
    • 2023-01-12
    • 1970-01-01
    相关资源
    最近更新 更多