- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图简单地将图像 dotpowder.png
放置在您触摸屏幕的位置。很简单,对吧?显然不是,因为图像是一个具有属性的类,因此我可以将其视为动态对象而不是 ImageView。以下是 DotCanvas.java
的代码:
package com.dhg.dots;
import android.content.Context;
import android.view.View;
import android.view.MotionEvent;
import android.graphics.Canvas;
import android.graphics.Point;
public class DotCanvas extends View {
private Context mContext;
public DotCanvas(Context context) {
super(context);
setFocusable(true);
mContext = context;
}
private DotBase dot;
@Override protected void onDraw(Canvas canvas) {
for (int i = 0; i < DotHandler.dotList.size(); i++) {
dot = DotHandler.dotList.get(i);
dot.setY(dot.getY() + 1);
canvas.drawBitmap(dot.getBitmap(), dot.getX(), dot.getY(), null);
}
}
public boolean onTouchEvent(MotionEvent event) {
Point dotPoint = new Point();
dotPoint.x = (int)event.getX();
dotPoint.y = (int)event.getY();
new DotPowder(mContext, dotPoint.x, dotPoint.y);
invalidate();
return true;
}
}
这是更新 DotBase.java
:
package com.dhg.dots;
import android.graphics.Bitmap;
import android.content.Context;
import android.graphics.BitmapFactory;
public class DotBase {
private Context mContext;
private Bitmap dotBitmap;
public DotBase(Context context, float x, float y) {
DotHandler.addDotToArray(this);
mContext = context;
Bitmap bitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.dotpowder);
dotBitmap = bitmap;
xCoord = x;
yCoord = y;
}
private float xCoord;
private float yCoord;
public void setX(float x) {
xCoord = x;
}
public void setY(float y) {
yCoord = y;
}
public float getX() {
return xCoord;
}
public float getY() {
return yCoord;
}
public void setGraphic(int id) {
dotBitmap = BitmapFactory.decodeResource(mContext.getResources(), id);
}
public Bitmap getBitmap() {
return dotBitmap;
}
}
最后,这是DotPowder.java
:
package com.dhg.dots;
import android.content.Context;
public class DotPowder extends DotBase {
public DotPowder(Context context, float x, float y) {
super(context, x, y);
setGraphic(R.drawable.dotpowder);
}
}
实例化新的DotBase
时会发生ClassNotFoundException
,但我不知道为什么。
附注这是DotHandler.java,主要的Activity:
package com.dhg.dots;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
public class DotHandler extends Activity {
/** Called when the activity is first created. */
public static List<DotBase> dotList = new ArrayList<DotBase>() {
private static final long serialVersionUID = -946727550332680940L;
};
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new DotCanvas(this));
}
public static void addDotToArray(DotBase dot) {
if (dotList.size() == 0) {
dotList.add(0, dot);
}
else {
dotList.add(dotList.size() + 1, dot);
}
}
}
这是堆栈跟踪:
java.lang.NullPointerException
at com.dhg.dots.DotBase.<init>(DotBase.java:17)
at com.dhg.dots.DotPowder.<init>(DotPowder.java:7)
at com.dhg.dots.DotCanvas.onTouchEvent(DotCanvas.java:32)
at android.view.View.dispatchTouchEvent(View.java:3778)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:885)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:885)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:885)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1716)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1124)
at android.app.Activity.dispatchTouchEvent(Activity.java:2125)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1700)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1802)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:5061)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
java.lang.NullPointerException
at com.dhg.dots.DotBase.<init>(DotBase.java:17)
at com.dhg.dots.DotPowder.<init>(DotPowder.java:7)
at com.dhg.dots.DotCanvas.onTouchEvent(DotCanvas.java:32)
at android.view.View.dispatchTouchEvent(View.java:3778)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:958)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:958)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:958)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1716)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1124)
at android.app.Activity.dispatchTouchEvent(Activity.java:2125)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1700)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1802)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:5061)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
java.lang.NullPointerException
at com.dhg.dots.DotBase.<init>(DotBase.java:17)
at com.dhg.dots.DotPowder.<init>(DotPowder.java:7)
at com.dhg.dots.DotCanvas.onTouchEvent(DotCanvas.java:32)
at android.view.View.dispatchTouchEvent(View.java:3778)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:958)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:958)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:958)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1716)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1124)
at android.app.Activity.dispatchTouchEvent(Activity.java:2125)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1700)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1802)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:5061)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
此外,正如您从堆栈跟踪中可以看出的那样,它也开始抛出 NullPointerExceptions。
最佳答案
问题确实出在这一行:
private Bitmap dotBitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.dotpowder);
这段代码是在调用构造函数之前调用的,这里 mContext 肯定为 null。只需将初始化代码放在构造函数中就可以了。希望这会有所帮助。
关于java - 为什么我的代码会抛出 ClassNotFoundException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6079722/
我的应用在尝试访问外部依赖项时遇到 NoClassDefFoundError,但仅限于作为 jar 运行时。 使用 Intellij,我有一个带有主类的简单应用程序,其中包含一些对外部依赖项(例如 s
我收到以下异常: java.lang.ClassNotFoundException: org.jboss.resteasy.plugins.server.servlet.ResteasyBootstr
我正在尝试使用eclipse和tomcat调试solr4.6源代码。我收到错误消息:HTTP 状态 500 - {msg=SolrCore 'collection1' 由于初始化失败而不可用:[sch
我是新来的,很抱歉我的英语不好;)。 我尝试使用以下代码在 java 中加载插件 jar: package testprogramm; import java.io.File; import java
我重新安装了 ADT Bundle,因为我在更新 eclipse 后遇到了一些问题。 现在,当我想测试我的应用程序时,出现以下异常: 06-05 10:33:35.770: E/AndroidRunt
我浏览过现有的帖子,这些帖子处理在 Eclipse 中的 Tomcat 下运行 Java Web 应用程序的 ClassNotFoundException。 我无法提供源代码和配置 Artifact
我忙于我的应用一个多星期,突然: 11-12 07:59:17.860 1653-1653/nl.test.myapp E/AndroidRuntime﹕ FATAL EXCEPTION: ma
我的应用程序有问题,昨天一切正常,但今天我更新了 sdk,现在当我尝试运行我的应用程序时,出现这样的错误 05-21 00:14:19.285: W/dalvikvm(7061): Unable t
我正在阅读 JPA docs在 Spring ,我正在尝试重组我的代码。 我现在所拥有的: BrewerRepository @Repository public class BrewerReposi
我想像 BalusC's example 一样实现 fileUpload . 不幸的是,我已经在努力声明 servlet。 Extensions Filter javax.faces
在某些机器上运行这个小程序不起作用,但在其他机器上它工作得很好。在所有情况下看起来都安装了 JRE 1.6.0_26。 var attributes = {codebase:'http://kas
我将跟随这个非常简单的教程(http://www.tutorialspoint.com/hadoop/hadoop_mapreduce.htm)一起学习,直到我尝试运行Java文件为止,一切运行良好。
我看到了帖子,并按照流程进行了操作。但这没有用。 ClassNotFoundException, while running example job of Hadoop 请帮助我。 创建的 mapre
我尝试在cloudera quickstart vm上为hadoop运行Mahout Kmeans示例。我在这里读link to clouudera block和这里stack overflow po
我有一个mapreduce程序,其中我使用Hcatalog从Hive表'A'中获取带有HcatInputFormat的详细信息,对其进行处理,然后使用HcatOutput格式将其写回到Hive表'B'
我是激发应用程序编程的新手,因此在这里为这个基本的编程而苦苦挣扎。 我有 scala ide 并附加了来自最新 hadoop 和 spark 发行版的相关 jar 文件。我正在使用的只有一个基本的 s
我正在尝试在本地模式下运行Spark示例,但是正在获取以下堆栈跟踪: Exception in thread "main" java.lang.NoClassDefFoundError: org/ap
我有以下代码: // Test TODO remove try { System.out.println(System.getProperties().getPrope
我有以下文件: src/my_proj/myns.clj: (ns my-proj.myns) (defrecord MyRecord [a b c]) 测试/my_proj/myns_test.c
我试图让应用程序动态加载某些类,然后调用启动方法,但问题是,由于 ClassLoader 不同,一个类无法调用另一个类的方法,但是正如我已经用 google 搜索的那样,我用父类创建了两个类加载器。这
我是一名优秀的程序员,十分优秀!