Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.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 应用程序正在打开,但在物理设备上不工作_Java_Android_Exception - Fatal编程技术网

Java 应用程序正在打开,但在物理设备上不工作

Java 应用程序正在打开,但在物理设备上不工作,java,android,exception,Java,Android,Exception,我是Android开发新手,正在学习使用Android Studio。我正在开发一个简单的应用程序,它可以告诉我咖啡杯订购数量的价格。当我在虚拟设备上运行应用程序时,它工作得非常好,但当我在手机上运行时,它出现了问题。应用程序加载正常,但当我点击“订单”按钮时,我得到一个错误:“不幸的是,只是Java停止了。”当我在谷歌上搜索时,我知道有一个叫做Logcat的东西。在查看Logcat时,我发现了多个我无法解决的错误 11-04 21:49:08.255 8217-8217/?E/System:e

我是Android开发新手,正在学习使用Android Studio。我正在开发一个简单的应用程序,它可以告诉我咖啡杯订购数量的价格。当我在虚拟设备上运行应用程序时,它工作得非常好,但当我在手机上运行时,它出现了问题。应用程序加载正常,但当我点击“订单”按钮时,我得到一个错误:“不幸的是,只是Java停止了。”当我在谷歌上搜索时,我知道有一个叫做Logcat的东西。在查看Logcat时,我发现了多个我无法解决的错误

11-04 21:49:08.255 8217-8217/?E/System:elements.add:/data/app/com.example.darshan.justjava-2/base.apk/data/app/com.example.darshan.justjava-2/base.apk/data/app/com.example.darshan.justjava-2/base.apk

11-04 21:49:08.452 8217-8217/?E/System:elements.add:/data/app/com.example.darshan.justjava-2/split_lib_dependentials\u apk.apk/data/app/com.example.darshan.justjava-2/split_lib_dependentials\u apk.apk/data/app/com.example.darshan.justjava-2/split_lib_dependentials\u apk

11-04 21:49:08.454 8217-8217/?E/System:elements.add:/data/app/com.example.darshan.justjava-2/split_lib_slice_0_apk.apk/data/app/com.example.darshan.justjava-2/split_lib_slice_0_apk.apk/data/app/com.example.darshan.justjava-2/split_lib_slice_0_apk.apk

此列表中的第三个错误在Logcat中出现了10次

然后,当我点击“订单”按钮时,出现如下所示的运行时错误:

11-04 21:53:45.667 8217-8217/com.example.darshan.justjava E/AndroidRuntime:FATAL EXCEPTION:main 进程:com.example.darshan.justjava,PID:8217 java.lang.IllegalStateException:无法为android执行方法:onClick

下面是一些例外,比如

原因:java.lang.reflect.InvocationTargetException

原因:java.lang.NoClassDefFoundError:未能解析:Landroid/icu/text/NumberFormat

原因:java.lang.ClassNotFoundException:在路径:DexPathList[[zip文件”/data/app/com.example.darshan.justjava-2/base.apk],zip文件/data/app/com.example.darshan上未找到类“android.icu.text.NumberFormat”

原因:java.lang.NoClassDefFoundError:使用引导类加载程序找不到类;没有可用堆栈

原因:java.lang.reflect.InvocationTargetException

有人能帮我在手机上运行我的应用程序吗?还有,为什么即使存在运行时异常,我的应用程序也能在虚拟设备上正确运行

提前谢谢


PS:此应用程序的项目文件夹不在Android Studio为我创建的默认AndroidStudio项目目录中。我创建了一个单独的目录。我告诉了它,以防这可能是错误的原因。

似乎您通过XML将Android:onClick引用到您的活动中不存在的方法如果你想这样引用一个动作,你必须有一个返回void并将View作为活动参数的方法

public void myOrderAction(View view){
   //Do the "Order" stuff here
}
在您的XML中

android:onClick="myOrderAction"
对于您的第一个错误: 在安卓系统中,软件包名称不能使用“-”号:
justjava-2
是错误的来源,因此,有些文件似乎没有添加到设备中

您应该使用一致的名称重新创建项目,例如
justjava_2


软件包名称只接受“a..z”、“_u”、“0..9”,并且必须以字母开头

您的设备运行的是哪个版本的android?
NumberFormat
类是在
api 24
中添加的,它运行的是android 5.1.1,api级别是22。这就是为什么它不在您的设备上运行。那么如何更改api级别呢?请将您的手机升级到api 24(如有),或者更改您的代码,不要使用api 24类,如
NumberFormat
,共享您的代码以获取更多信息是的,这应该可以解决onClick问题,也可以查看我在下面的回复中关于一致性的其他错误。我已经有了一种方法。它在模拟器上运行得非常好。您是如何得出此结论的?onClick 失败是:
原因:java.lang.NoClassDefFoundError:解析失败:Landroid/icu/text/NumberFormat;
我想这是因为模拟器上的设备API级别为25。我的手机API级别为22。我没有命名它……它是由Android Studio自己命名的