私が持って次のようにそれはマニフェストで宣言されているコンパニオンオブジェクトは - Androidの活動としてそれらを登録したいん
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)
}
}
活動:
<activity android:name=".DummyActivity"/>
</application>
私はそれを起動しようとすると(?) 、私が手:
によって引き起こさ:android.content.ActivityNotFoundException:明示的なアクティビティクラスを見つけることができません> {com.example.andrzejzuzak.visiondummyapp/com.e xample.andrzejzuzak.visiondummyapp.DummyActivity $ Companion};あなたのAndroidManifest.xmlでこのアクティビティを宣言しましたか? android.app.Activity.startActivityForResultでandroid.app.Instrumentation.execStartActivity(Instrumentation.java:1512) でandroid.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1794) (Activity.java:3930) でで(アクティビティ)。アクティビティjava:3890)android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:859) android.app.Activity.startActivity(Activity.java:4213) android.app.Activity.startActivity(Activity.java:4181) at com.example.andrzejzuzak.visiondummyapp.MainActivity.onActivityResult(MainActivity.kt:85) android.app.ActivityThread.deliverResults android.app.ActivityThread.handleSendResult(ActivityThread.java:3742で(ActivityThread.java:3695) )でandroid.app.Activity.dispatchActivityResult(Activity.java:6456) で) android.app.ActivityThread.-wrap16(ActivityThread.java) android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1393) android.os.Handler.dispatchMessage(Handler.java:102) とandroid.os.Looper.loop(Looper.java:148) とandroid.app.ActivityThread.main(ActivityThread.java:5417) でのjava私を気に何.lang.reflect.Method.invoke(ネイティブメソッド)
はこの行です:明示的なアクティビティクラス{com.example.andrzejzuzak.visiondummyapp/com.exampleを見つけることができません
。 andrzejzuzak.visiondummyapp.DummyActivity $ Companion
コンパニオンオブジェクトをどこかに登録する必要があるのは実際ですか?
を使用する必要があります(コンテキストを、DummyActivity :: class.java)'代わり –
無関係:活動はすでに 'onNewIntent'方法があり、おそらく、ファクトリメソッドの名前を 'createIntent'のように一見わかりやすくわかりやすい名前に変更したいと思うかもしれません。 (コールバックではなく、 'on'で始まらない。)あなたの将来の自己をある時間保存してください。 –