startActivity(new Intent(new.XX(), XX.class))为什么行不通呢?(已经导入jar包,可以调用普通类的方法,不能调用Activity.) 参数错了吗?new Intent(Context packageContext,Class<?> cla);
LogCat提示如下:
AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.dsa/com.example.dsa.MainActivity}: java.lang.NullPointerException
AndroidRuntime at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
AndroidRuntime at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
AndroidRuntime at android.app.ActivityThread.access$600(ActivityThread.java:130)
AndroidRuntime at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
AndroidRuntime at android.os.Handler.dispatchMessage(Handler.java:99)
AndroidRuntime at android.os.Looper.loop(Looper.java:137)
AndroidRuntime at android.app.ActivityThread.main(ActivityThread.java:4745)
AndroidRuntime at java.lang.reflect.Method.invokeNative(Native Method)
AndroidRuntime at java.lang.reflect.Method.invoke(Method.java:511)
AndroidRuntime at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
AndroidRuntime at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
AndroidRuntime at dalvik.system.NativeStart.main(Native Method)
AndroidRuntime Caused by: java.lang.NullPointerException
AndroidRuntime at android.content.ContextWrapper.getPackageName(ContextWrapper.java:127)
AndroidRuntime at android.content.ComponentName.<init>(ComponentName.java:75)
AndroidRuntime at android.content.Intent.<init>(Intent.java:3301)
AndroidRuntime at com.example.dsa.MainActivity.onCreate(MainActivity.java:18)
AndroidRuntime at android.app.Activity.performCreate(Activity.java:5008)
AndroidRuntime at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
AndroidRuntime at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)3)
3 个解决方案
#1
上面那个new XX()获取不了包名.
传入context = createPackageContext("com.itheima.mobilesafe", CONTEXT_INCLUDE_CODE|CONTEXT_IGNORE_SECURITY); 这个参数也不行,LogCat提示have you declared this activity in your AndroidMainfest.xml? 配了也没用
传入context = createPackageContext("com.itheima.mobilesafe", CONTEXT_INCLUDE_CODE|CONTEXT_IGNORE_SECURITY); 这个参数也不行,LogCat提示have you declared this activity in your AndroidMainfest.xml? 配了也没用
#2
你说导入了jar包,那么反编译一下你的apk看看jar包的代码是不是已经打进去了,如果是的话就错了。
如果不是,那也可能是第三方app的class和jar包的class不一样。
一句话,不要用非主流手段写代码。
如果不是,那也可能是第三方app的class和jar包的class不一样。
一句话,不要用非主流手段写代码。
#3
倒入了jar包,需要到manifest里注册activity,而且你都做成jar包放到一起了,其实它们就是在一个应用里了,你用的是显示调用启动还是自己app里的activity
如果一定要启动别的应用的activity,还是用隐式调用最简单,让别的app的activity声明里价格intent-filter就行了,没必要这么纠结一定要用某种方法实现一个功能,其他的方法可以用就行
如果一定要启动别的应用的activity,还是用隐式调用最简单,让别的app的activity声明里价格intent-filter就行了,没必要这么纠结一定要用某种方法实现一个功能,其他的方法可以用就行
#1
上面那个new XX()获取不了包名.
传入context = createPackageContext("com.itheima.mobilesafe", CONTEXT_INCLUDE_CODE|CONTEXT_IGNORE_SECURITY); 这个参数也不行,LogCat提示have you declared this activity in your AndroidMainfest.xml? 配了也没用
传入context = createPackageContext("com.itheima.mobilesafe", CONTEXT_INCLUDE_CODE|CONTEXT_IGNORE_SECURITY); 这个参数也不行,LogCat提示have you declared this activity in your AndroidMainfest.xml? 配了也没用
#2
你说导入了jar包,那么反编译一下你的apk看看jar包的代码是不是已经打进去了,如果是的话就错了。
如果不是,那也可能是第三方app的class和jar包的class不一样。
一句话,不要用非主流手段写代码。
如果不是,那也可能是第三方app的class和jar包的class不一样。
一句话,不要用非主流手段写代码。
#3
倒入了jar包,需要到manifest里注册activity,而且你都做成jar包放到一起了,其实它们就是在一个应用里了,你用的是显示调用启动还是自己app里的activity
如果一定要启动别的应用的activity,还是用隐式调用最简单,让别的app的activity声明里价格intent-filter就行了,没必要这么纠结一定要用某种方法实现一个功能,其他的方法可以用就行
如果一定要启动别的应用的activity,还是用隐式调用最简单,让别的app的activity声明里价格intent-filter就行了,没必要这么纠结一定要用某种方法实现一个功能,其他的方法可以用就行