我正在尝试在libgdx游戏中创建一个分享按钮。我已按照本指南https://github.com/libgdx/libgdx/wiki/Interfacing-with-platform-specific-code,但在调用接口方法时,出现此错误:
06-26 23:57:31.594: W/System.err(27789): java.lang.NullPointerException
06-26 23:57:31.596: W/System.err(27789): at android.app.Activity.startActivityForResult(Activity.java:3436)
06-26 23:57:31.597: W/System.err(27789): at android.app.Activity.startActivityForResult(Activity.java:3393)
06-26 23:57:31.599: W/System.err(27789): at android.app.Activity.startActivity(Activity.java:3644)
06-26 23:57:31.601: W/System.err(27789): at android.app.Activity.startActivity(Activity.java:3607)
06-26 23:57:31.602: W/System.err(27789): at com.mimostudios.utils.Share.shareScore(Share.java:18)
06-26 23:57:31.603: W/System.err(27789): at com.mimostudios.policecarracing.android.AndroidShare.shareScore(AndroidShare.java:15)
06-26 23:57:31.604: W/System.err(27789): at com.mimostudios.policecarracing.MenuScreen.render(MenuScreen.java:47)
06-26 23:57:31.605: W/System.err(27789): at com.badlogic.gdx.Game.render(Game.java:46)
06-26 23:57:31.607: W/System.err(27789): at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:414)
06-26 23:57:31.608: W/System.err(27789): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1523)
06-26 23:57:31.609: W/System.err(27789): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
接口调用的方法是
12 public void shareScore(String title, String message) {
13 Intent share = new Intent(Intent.ACTION_SEND);
14 share.setType("text/plain");
15 share.putExtra(Intent.EXTRA_TEXT, message);
16 try {
17 Intent finalIntent = Intent.createChooser(share, title);
18 startActivity(finalIntent);
19 } catch (Exception e) {
20 System.out.println("error: " + e.getMessage());
21 e.printStackTrace();
22 }
23 }
我还在manifest.xml中添加了Share Activity
<activity android:name="com.mimostudios.utils.Share"></activity>
有什么想法吗? 如果我遗漏了一些相关信息,请告诉我,这是我的第一个问题!
答案 0 :(得分:0)
我刚刚找到了解决方案,基于此:Start a new Activity from non Activity class
我尝试使用的类是从Activity扩展,因为我认为这是类启动新Activity的唯一方法。 但是,如果将上下文传递给该类的构造函数,则可以从非Activity类启动Activity。之后,您可以从上下文中调用方法startActivity。