Android getDrawable返回null

Android getDrawable返回null,android,resources,nullpointerexception,getresource,Android,Resources,Nullpointerexception,Getresource,由于发布了与问题相关的代码不同的代码,因此我已经解决了关于此问题的最后一个问题,我将使用正确的代码重试 这就是交易,我一直在用Google Maps API为Android运行一些测试,当我试图用我的一张图片在我的地图上设置一个定制的Overlay时,我注意到,当我使用getDrawable访问我的图像时,它返回null,即使eclipse本身显示我的图像在那里,当我在选择要访问的drawable时使用ctrl+backspace时:/ 我已经为此绞尽脑汁好几个小时了。这里有什么不对劲的线索吗

由于发布了与问题相关的代码不同的代码,因此我已经解决了关于此问题的最后一个问题,我将使用正确的代码重试

这就是交易,我一直在用Google Maps API为Android运行一些测试,当我试图用我的一张图片在我的地图上设置一个定制的Overlay时,我注意到,当我使用getDrawable访问我的图像时,它返回null,即使eclipse本身显示我的图像在那里,当我在选择要访问的drawable时使用ctrl+backspace时:/

我已经为此绞尽脑汁好几个小时了。这里有什么不对劲的线索吗

提前感谢:)

PS:当我使用ctrl+backspace时,显示eclipse在资源中显示我的图像的打印

代码:

import java.util.List;

import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;

public class MapHandlerActivity extends MapActivity {


private MapView mapView;
private static final int latitudeE6 = 37985339;
private static final int longitudeE6 = 23716735;


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.main);
    setContentView(R.layout.maphandler);

    mapView = (MapView) findViewById(R.id.map_view);      
    mapView.setBuiltInZoomControls(true);

    List<Overlay> mapOverlays = mapView.getOverlays();
    Resources res = this.getResources();
    Drawable drawable = res.getDrawable(R.drawable.android_tiny_image);
    CustomItemizedOverlay itemizedOverlay = new CustomItemizedOverlay(drawable, this);
    GeoPoint point = new GeoPoint(latitudeE6, longitudeE6);
    OverlayItem overlayItem = new OverlayItem(point, "Olá", "Estou em Athena, Grécia!");

    itemizedOverlay.addOverlay(overlayItem);
    mapOverlays.add(itemizedOverlay);

    MapController mapController = mapView.getController();

    mapController.animateTo(point);
    mapController.setZoom(6);
}
@Override
protected boolean isRouteDisplayed() {
    return true;
}
import java.util.List;
导入android.content.res.Resources;
导入android.graphics.drawable.drawable;
导入android.os.Bundle;
导入com.google.android.maps.GeoPoint;
导入com.google.android.maps.MapActivity;
导入com.google.android.maps.MapController;
导入com.google.android.maps.MapView;
导入com.google.android.maps.Overlay;
导入com.google.android.maps.OverlayItem;
公共类MapHandlerActivity扩展了MapActivity{
私有地图视图;
私有静态最终int-latitudeE6=37985339;
专用静态最终int-longitudeE6=23716735;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
setContentView(R.layout.maphandler);
mapView=(mapView)findViewById(R.id.map\u视图);
mapView.SetBuilTinZoomControl(真);
List mapOverlays=mapView.getOverlays();
Resources res=this.getResources();
Drawable Drawable=res.getDrawable(R.Drawable.android\u tiny\u image);
CustomItemizedOverlay itemizedOverlay=新的CustomItemizedOverlay(可绘制,此);
地质点=新的地质点(纬度E6、纬度E6);
OVERLAYTEM OVERLAYTEM=新的OVERLAYTEM(点,“Olá”,“Estou em Athena,Grécia!”);
itemizedOverlay.addOverlay(overlayItem);
添加(itemizedOverlay);
MapController MapController=mapView.getController();
mapController.animateTo(点);
mapController.setZoom(6);
}
@凌驾
受保护的布尔值isRouteDisplayed(){
返回true;
}
}

试着放

import your.project.package.R;
在您的导入中,并确保您的R

R.drawable.android_tiny_image

正在指向该

尝试将图像放在所有可绘制质量文件夹(可绘制hdpi/可绘制ldpi等)中


可能是您使用的仿真器或设备密度不同,正在尝试从另一个文件夹中提取图像。

我也遇到了此问题,并且似乎在文档中,如果我理解正确,则说明问题。

仍然无法工作:(说真的,这没有意义!x_x看到了吗?Eclipse本身显示我的图像在那里,但它仍然返回null!嗯,好主意!现在尝试了,但仍然不起作用:/而且问题没有影响到1个图像,我无法访问我资源中的任何图像,以前从未见过这种情况:/@thiagocolehofarinazzobalduc形式是什么在图像的结尾?也尝试将图像放在父可绘制文件夹中。我的图像是png,我将尝试将其放入/drawable中,看看是否有效!谢谢!叹气,仍然返回null heck:/@thiagocolehofarinazzobalduc这真的很奇怪。在调试器中逐步检查它。确保getResources()正在返回并查看返回的内容,以查看是否可以找到可绘制的。是否在图像中使用.png、.jpg或.gif以外的扩展名?它可能无法识别其他扩展名类型。