Android 应用程序被迫停止
我制作了一个新的应用程序来检查SSID。代码很好,但是当我运行仿真并尝试运行应用程序时,他停止了工作。有什么想法吗?对不起我的英语 这是我的日志:Android 应用程序被迫停止,android,Android,我制作了一个新的应用程序来检查SSID。代码很好,但是当我运行仿真并尝试运行应用程序时,他停止了工作。有什么想法吗?对不起我的英语 这是我的日志: 03-11 15:45:22.580: D/AndroidRuntime(867): Shutting down VM 03-11 15:45:22.580: W/dalvikvm(867): threadid=1: thread exiting with uncaught exception (group=0xb1a45ba8) 03-11 15:
03-11 15:45:22.580: D/AndroidRuntime(867): Shutting down VM
03-11 15:45:22.580: W/dalvikvm(867): threadid=1: thread exiting with uncaught exception (group=0xb1a45ba8)
03-11 15:45:22.590: E/AndroidRuntime(867): FATAL EXCEPTION: main
03-11 15:45:22.590: E/AndroidRuntime(867): Process: com.example.wifiscanner, PID: 867
03-11 15:45:22.590: E/AndroidRuntime(867): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.wifiscanner/com.example.wifiscanner.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.wifiscanner.MainActivity" on path: DexPathList[[zip file "/data/app/com.example.wifiscanner-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.wifiscanner-2, /system/lib]]
03-11 15:45:22.590: E/AndroidRuntime(867): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2121)
03-11 15:45:22.590: E/AndroidRuntime(867): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
03-11 15:45:22.590: E/AndroidRuntime(867): at android.app.ActivityThread.access$800(ActivityThread.java:135)
03-11 15:45:22.590: E/AndroidRuntime(867): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
03-11 15:45:22.590: E/AndroidRuntime(867): at android.os.Handler.dispatchMessage(Handler.java:102)
03-11 15:45:22.590: E/AndroidRuntime(867): at android.os.Looper.loop(Looper.java:136)
03-11 15:45:22.590: E/AndroidRuntime(867): at android.app.ActivityThread.main(ActivityThread.java:5017)
03-11 15:45:22.590: E/AndroidRuntime(867): at java.lang.reflect.Method.invokeNative(Native Method)
03-11 15:45:22.590: E/AndroidRuntime(867): at java.lang.reflect.Method.invoke(Method.java:515)
03-11 15:45:22.590: E/AndroidRuntime(867): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
03-11 15:45:22.590: E/AndroidRuntime(867): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
03-11 15:45:22.590: E/AndroidRuntime(867): at dalvik.system.NativeStart.main(Native Method)
03-11 15:45:22.590: E/AndroidRuntime(867): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.wifiscanner.MainActivity" on path: DexPathList[[zip file "/data/app/com.example.wifiscanner-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.wifiscanner-2, /system/lib]]
03-11 15:45:22.590: E/AndroidRuntime(867): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
03-11 15:45:22.590: E/AndroidRuntime(867): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
03-11 15:45:22.590: E/AndroidRuntime(867): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
03-11 15:45:22.590: E/AndroidRuntime(867): at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
03-11 15:45:22.590: E/AndroidRuntime(867): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112)
03-11 15:45:22.590: E/AndroidRuntime(867): ... 11 more
03-11 15:45:25.940: I/Process(867): Sending signal. PID: 867 SIG: 9
我更改了ClassHeader.java的activy,我正在使用Eclipse
我解决了这个问题。我重命名并更改了代码:
package com.example.wifiscanner;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;
import android.app.Activity;
import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
public class MainActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void getWifiInfo( Context ctxt ) {
int speed = 0;
String ssid = null;
String bssid = null;
String mac = "00:00:00:00:00:00";
String netmask = "255.255.255.255";
String gateway = "0.0.0.0";
WifiInfo info;
WifiManager wifi = (WifiManager) ctxt.getSystemService(Context.WIFI_SERVICE);{
if (wifi != null) {
info = wifi.getConnectionInfo();
speed = info.getLinkSpeed();
ssid = info.getSSID();
bssid = info.getBSSID();
mac = info.getMacAddress();
gateway = getSigned( wifi.getDhcpInfo().gateway );
netmask = getSigned( wifi.getDhcpInfo().netmask );
System.out.println( "Speed : " + speed
+ "ssid : " + ssid
+ "bssid :" + bssid
+ "macAddress :" + mac
+ "netmaskIp :" + netmask
+ "gatewayIp :" + gateway );
}else{
System.out.println( "Wi-fi is Null");
}
}
}
public static String getSigned(int ips ) {
String ip = "";
for (int k = 0; k < 4; k++) {
ip = ips + (( ips >> k * 8) & 0xFF) + ".";
}
return ip.substring(0, ip.length() - 1);
}
}
package com.example.wifiscanner;
导入android.support.v7.app.ActionBarActivity;
导入android.support.v7.app.ActionBar;
导入android.support.v4.app.Fragment;
导入android.os.Bundle;
导入android.view.LayoutInflater;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.view;
导入android.view.ViewGroup;
导入android.os.Build;
导入android.app.Activity;
导入android.content.Context;
导入android.net.wifi.WifiInfo;
导入android.net.wifi.WifiManager;
公共类MainActivity扩展了活动{
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void getWifiInfo(上下文ctxt){
int速度=0;
字符串ssid=null;
字符串bssid=null;
String mac=“00:00:00:00:00”;
字符串netmask=“255.255.255.255”;
字符串网关=“0.0.0.0”;
WifiInfo信息;
WifiManager wifi=(WifiManager)ctxt.getSystemService(Context.wifi_服务){
如果(wifi!=null){
info=wifi.getConnectionInfo();
速度=info.getLinkSpeed();
ssid=info.getSSID();
bssid=info.getBSSID();
mac=info.getMacAddress();
网关=getSigned(wifi.getDhcpInfo().gateway);
netmask=getSigned(wifi.getDhcpInfo().netmask);
System.out.println(“速度:”+速度
+“ssid:+ssid
+“bssid:”+bssid
+“macAddress:”+mac
+“netmaskIp:+netmask
+“网关IP:”+网关);
}否则{
System.out.println(“Wi-fi为空”);
}
}
}
公共静态字符串getSigned(int-ips){
字符串ip=“”;
对于(int k=0;k<4;k++){
ip=ips+((ips>>k*8)和0xFF)+”;
}
返回ip.substring(0,ip.length()-1);
}
}
现在我可以在emulator上运行该应用程序,但它没有显示按钮,什么也没有。只是一个白色的屏幕。有什么想法吗?谢谢你的帮助!再一次抱歉…您没有将其称为
活动,这是标准方法
public class ClassHeader extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_activity_xml);
}
}
请花些时间阅读活动生命周期原则,它们在您开始在Android上编程之前非常重要
我希望人们在盲目发布日志之前先阅读这些日志。这可能是一个线索:java.lang.ClassNotFoundException:找不到类“com.example.wifiscanner.MainActivity”
@HoboSapiens虽然我同意你的说法,但这不是欢迎新用户访问该网站的最佳方式。是的。发生该错误的原因可能是该类不在APK中,或者Proguard重命名了它。如果这是一个调试版本,那么可能没有使用Proguard。我想问题在于我更改了ClassHeader.java的活动您更改了什么,如何更改?你可以发布你的代码清单,你的活动类,你用来启动新活动的方法吗。但现在,当我运行应用程序时,它只是显示一个白色屏幕,也许它在我的布局中?你是那种人吗?