Android studio Android:允许运行无效程序的即时运行(onClick处理程序中缺少“public”)

Android studio Android:允许运行无效程序的即时运行(onClick处理程序中缺少“public”),android-studio,instant-run,Android Studio,Instant Run,(我是一名新的Android开发人员,所以我的术语可能是错误的。) Android Studio 2.3.1 针对API 22 我似乎有一个程序有一个即时运行允许的错误,但当从一个内置的apk运行时崩溃,例如,从电子邮件安装。情况是这样的: 我有一个xml按钮,带有onClick属性: <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:te

(我是一名新的Android开发人员,所以我的术语可能是错误的。)

Android Studio 2.3.1 针对API 22

我似乎有一个程序有一个即时运行允许的错误,但当从一个内置的apk运行时崩溃,例如,从电子邮件安装。情况是这样的:

我有一个xml按钮,带有onClick属性:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:onClick="myOnClick"
/>
(是的,我确实收到Android Studio的警告,说myOnClick从未被使用过。)

当我使用run或Debug按钮从Android Studio运行此程序时,程序运行“正确”,即当我单击按钮时,myOnClick会毫无怨言地执行。但它不应该工作,因为所需的签名是“public void myOnClick(View v)”

此外,如果我“构建APK”,然后以文件的形式显式安装该APK,例如通过在手机上将其邮寄给我自己,则应用程序会崩溃,我认为这是正确的行为:

Could not find method myOnClick(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton
[trace snipped]
添加缺少的“public”允许应用程序在从apk像这样安装时运行。我认为这是Android Studio即时运行功能中的一个bug,并打算将其归档,除非有一个原因,它不是bug。 这是有原因的,还是有缺陷

Could not find method myOnClick(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton
[trace snipped]