Companion objects - Android wants to register them as actions (?)

I have an Activity

class DummyActivity : Activity() { companion object { @JvmStatic fun onNewIntent(context: Context): Intent { val intent = Intent(context, DummyActivity.javaClass) return intent } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } } 

Declared in the manifest as follows:

  <activity android:name=".DummyActivity"/> </application> 

When I try to run it, I get:

Called: android.content.ActivityNotFoundException: Unable to find explicit activity class> {com.example.andrzejzuzak.visiondummyapp / com.example.andrzejzuzak.visiondummyapp.DummyActivity $ Companion}; Have you declared this activity in your AndroidManifest.xml? at android.app.Instrumentation.checkStartActivityResult (Instrumentation.java:1794) at android.app.Instrumentation.execStartActivity (Instrumentation.java:1512) at android.app.Activity.startActivityForResult (Activity.java:3930) in android.support. v4.app.BaseFragmentActivityJB.startActivityForResult (BaseFragmentActivityJB.java:50) at android.support.v4.app.FragmentActivity.startActivityForResult (FragmentActivity.java:79) at android.app.Activity.startActivityForRavault (Activity) at android.support.v4.app.FragmentActivity.startActivityForResult (FragmentActivity.java:859) at android.app.Activity.startActivity (Activity.java:4213) at android.app.Activity.startActivity (Activity.java:4181) on com.example.andrzejzuzak.visiondummyapp.MainActivity.onActivityResult (MainActivity.kt: 85) at android.app.Activity.dispatchActivityResult (Activity.java:6456) at android.app.ActivityThread.deliverResults (ActivityThread.java:3695) at android.app.ActivityThread.handleSendResult (ActivityThread.java:3742) at android.app.ActivityThread.-wrap16 (ActivityThread.java) at android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1393) on android.os .Handler.dispatchMessage (Handler.java:102) on android.os.Looper.loop (Looper.java:148) at android.app.ActivityThread.main (ActivityThread.java:5417) in java.lang.reflect.Met hod.invoke (native method)

I am worried about this line:

Cannot find explicit activity class {com.example.andrzejzuzak.visiondummyapp / com.example.andrzejzuzak.visiondummyapp.DummyActivity $ Companion

Does this mean that I have to register the Companion object somewhere?

+5
source share
1 answer

DummyActivity.javaClass refers to DummyActivity.Companion , not DummyActivity . This is actually even a warning:

The resulting type of this call is javaClass Class<Dummy.Companion> , not Class<Dummy> . Please use the sharper ::class.java to avoid confusion.

Warning

Instead, you should use DummyActivity::class.java ,

+6
source

Source: https://habr.com/ru/post/1266196/


All Articles