-1

我将项目类组织在多个 src 文件夹中,这些文件夹一直运行良好,直到我更改了活动之间的切换,现在将字符串传递合并到以下活动中。我认为问题与类路径有关。

                Bundle bundle = new Bundle();
                bundle.putString("email", userEmail);
                Intent intent = new Intent(MainActivity.this,
                        com.fm.mondev.MeanSelection.class);
                intent.putExtras(bundle);
                startActivity(intent);

[编辑] 我意识到问题与类的路径并不完全相关,即使我目前有 MeanSelection.class 而不是 com.fm.mondev.MeanSelection.class。事实上,问题似乎与捆绑有关。当我在登录和主要活动之间使用它时它可以工作,但不适用于主要活动之后的活动。我还尝试了下面显示的替代方法。我对后续活动进行了相应的编辑。

                Intent intent = new Intent(MainActivity.this,
                        MeanSelection.class);
                intent.putExtra("email", userEmail);
                startActivity(intent);

我查看了我的 logcat,但我没有发现任何有用的东西。如果我评论 putExtra(s) 行,我知道这有效。

[回答] 在查找了 logcat 的每个错误行并阅读了您的答案后,我意识到通过 Log.d 编写的变量之一存在问题。因此,解决方案是删除这些行,因为它们只是为了验证变量是否是通过捆绑包从先前的活动中正确选择的。我的结论是:从现在开始,我不会记录从一个活动传递到另一个活动的字符串。我不确定这是否真的是 Android 的问题,或者只是其中一个没有可行解释的问题,我们都非常清楚,但是一旦我删除了这些行,我的应用程序就启动并运行了。

4

4 回答 4

6

应用程序在应该打开第二个活动时崩溃。以下错误让我相信这与路径有关:“E/AndroidRuntime(7115): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fm/com.fm.mondev.MeanSelection}: java. lang.NullPointerException: println 需要一条消息"

println 需要一条与活动无关的消息。阅读你的日志!

当我尝试Log使用空值时出现此错误,即

String foo = emptyBundle.getString("barValue");
Log.d(TAG, foo) // error, Log output functions cannot output null values.
Log.d(TAG, "barValue: " + barValue);  // outputs "barValue: null"

确保您正在记录的任何内容或 System.out.printlning 都具有价值。

于 2012-05-14T17:04:45.623 回答
1

如果您只发送一个字符串,则不必使用 Bundle。

Intent intent = new Intent(MainActivity.this, com.fm.mondev.MeanSelection.class);
intent.putExtra("com.fm.MainActivity.userEmail", userEmail);
startActivity(intent);

应该可以正常工作。我真的不知道这是否能解决您的问题,因为您从未说明错误消息是什么。

于 2012-05-14T16:53:53.960 回答
0

根据您得到的异常,您在活动E/AndroidRuntime(7115): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fm/com.fm.mondev.MeanSelection}: java.lang.NullPointerException: println needs a message中的某些日志记录代码中获得了 NPE com.fm.mondev.MeanSelection

例如,检查这个:NullPointerException : println need a message in android

于 2012-05-14T17:09:01.480 回答
0

实际上,您正在犯错误: java.lang.NullPointerException: println 需要一条消息

我认为您正在将一些空值传递给 println 方法

于 2012-05-14T17:37:48.123 回答