Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 视图构造函数上的NoSuchMethodError_Java_Android - Fatal编程技术网

Java 视图构造函数上的NoSuchMethodError

Java 视图构造函数上的NoSuchMethodError,java,android,Java,Android,我在运行时实例化一个视图,99,99%的时间都是有效的,但是一些用户报告说它崩溃了,抛出了一个NoSuchMethodError 我像这样实例化视图,这就是抛出错误的地方: AddAPostView addAPostView = new AddAPostView(getContext()); 这就是视图的代码: public class AddAPostView extends LinearLayout { public AddAPostView(Context context) {

我在运行时实例化一个视图,99,99%的时间都是有效的,但是一些用户报告说它崩溃了,抛出了一个NoSuchMethodError

我像这样实例化视图,这就是抛出错误的地方:

AddAPostView addAPostView = new AddAPostView(getContext());
这就是视图的代码:

public class AddAPostView extends LinearLayout {

    public AddAPostView(Context context) {
        super(context);
        init();
    }

    public AddAPostView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public AddAPostView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    private void init() {
      ...
    }
}
我通过Google Analytics得到了报告,所以我只有生成错误的那一行


为什么像这样简单的代码有时会抛出如此严重的错误?如何避免这种情况?

你的
minSdk
是什么?如果低于11,那么是宾果

API 11中添加了三参数构造函数。即使您没有使用它,在实例化该类时,也需要查找所有方法,并弹出
NoSuchMethodError


(由于您设置了
targetSdk
,它将在您的机器上编译。)

您的
minSdk
是什么?如果低于11,那么是宾果

API 11中添加了三参数构造函数。即使您没有使用它,在实例化该类时,也需要查找所有方法,并弹出
NoSuchMethodError


(它将在您的计算机上编译,因为您设置了
targetSdk

NoSuchMethodError
通常是一个指示器,指示您编译的代码使用的类版本与引发错误的代码不同。原则上,如果代码在编译时没有找到方法,它就不会编译。事实上,它编译为ok意味着该方法在编译期间就在那里。此外,代码在运行时找不到该方法这一事实意味着它正在使用不同版本的类。我更倾向于认为这是一个过时的代码问题,正如您提到的,只有少数用户报告了错误。它们必须使用较旧版本的代码或较旧版本的依赖库


请验证报告此错误的用户是否正在运行代码的最新副本。此外,依赖库的版本应与编译时使用的版本相同。我不是一个adroid开发人员,但我在Java世界中多次看到类似的情况,根本原因总是版本。

NoSuchMethodError
通常是一个指标,表明您编译的代码使用的是与抛出错误的代码不同的类版本。原则上,如果代码在编译时没有找到方法,它就不会编译。事实上,它编译为ok意味着该方法在编译期间就在那里。此外,代码在运行时找不到该方法这一事实意味着它正在使用不同版本的类。我更倾向于认为这是一个过时的代码问题,正如您提到的,只有少数用户报告了错误。它们必须使用较旧版本的代码或较旧版本的依赖库


请验证报告此错误的用户是否正在运行代码的最新副本。此外,依赖库的版本应与编译时使用的版本相同。我不是一个adroid开发人员,但我在Java世界中多次看到类似的情况,根本原因总是版本。

。。。没有堆栈跟踪?我只有这个:NoSuchMethodError(@NewFullscreenSocialHandler:createAddPostView:71){main}(这是我实例化视图的行),它说可能是类文件被修改了。也许那些用户在搞乱他们?所以。。。没有堆栈跟踪?我只有这个:NoSuchMethodError(@NewFullscreenSocialHandler:createAddPostView:71){main}(这是我实例化视图的行),它说可能是类文件被修改了。可能是那些用户弄乱了他们?minSdk是14,这不是问题minSdk是14,这不是问题我实例化的类总是有那个构造函数,不一定是构造函数。正如我所提到的
所有代码和所有依赖库
,因此,如果构造函数在另一个不同步的类中调用另一个方法,您仍然不会有任何方法错误。最好的方法是请求用户获取最新版本的应用程序并重试。如果您的应用程序需要任何外部依赖项,请用户也更新这些依赖项。要添加,请查看Bundell上面的回答,我刚才提到的依赖库可能是Android SDK本身。因此,用户使用的版本可能与您用于开发的版本不同。我建议浏览上面Bundell回复中的链接。但这肯定是用户端的版本问题。@P.J是对的,似乎您的一个方法调用的
minSdk
高于您在AndroidManifest
14
中声明的值,但因为您的目标可能是
18
,所以您无法看到它。提示将您的
targetSdk
更改为
14
,您将在
14
中不可用的任何代码上获得编译错误。我正在实例化的类始终具有该构造函数。不一定是构造函数。正如我所提到的
所有代码和所有依赖库
,因此,如果构造函数在另一个不同步的类中调用另一个方法,您仍然不会有任何方法错误。最好的方法是请求用户获取最新版本的应用程序并重试。如果您的应用程序需要任何外部依赖项,请用户也更新这些依赖项。要添加,请查看Bundell上面的回答,我刚才提到的依赖库可能是Android SDK本身。因此,用户使用的版本可能与您用于开发的版本不同。我建议浏览上面Bundell回复中的链接。但这肯定是用户端的版本问题。@P.J是对的,似乎您的一个方法调用有一个