Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.ClassNotFoundException:com.hamweather.aeris.maps.R$layout使用aeris Weather SDK_Java_Android_Xml_Android Layout_Android Fragments - Fatal编程技术网

java.lang.ClassNotFoundException:com.hamweather.aeris.maps.R$layout使用aeris Weather SDK

java.lang.ClassNotFoundException:com.hamweather.aeris.maps.R$layout使用aeris Weather SDK,java,android,xml,android-layout,android-fragments,Java,Android,Xml,Android Layout,Android Fragments,我正在使用Hamweather Aeris android SDK,并尝试实现地图视图组件。当我阅读他们的在线教程时,我无法渲染AerisMapView,并且我得到了错误: java.lang.ClassNotFoundException: com.hamweather.aeris.maps.R$layout. 有人知道这是从哪里来的/如何解决吗 我的xml文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xm

我正在使用Hamweather Aeris android SDK,并尝试实现地图视图组件。当我阅读他们的在线教程时,我无法渲染AerisMapView,并且我得到了错误:

java.lang.ClassNotFoundException: com.hamweather.aeris.maps.R$layout. 
有人知道这是从哪里来的/如何解决吗

我的xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <com.hamweather.aeris.maps.AerisMapView
        android:id="@+id/aerisfragment_map"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >
    </com.hamweather.aeris.maps.AerisMapView>

</LinearLayout>
最后,片段:

import android.location.*;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.google.android.gms.maps.model.LatLng;
import com.hamweather.aeris.communication.AerisCallback;
import com.hamweather.aeris.communication.EndpointType;
import com.hamweather.aeris.location.LocationHelper;
import com.hamweather.aeris.maps.AerisMapView;
import com.hamweather.aeris.maps.AerisMapView.AerisMapType;
import com.hamweather.aeris.maps.MapViewFragment;
import com.hamweather.aeris.maps.interfaces.OnAerisMapLongClickListener;
import com.hamweather.aeris.maps.interfaces.OnAerisMarkerInfoWindowClickListener;
import com.hamweather.aeris.maps.markers.AerisMarker;
import com.hamweather.aeris.model.AerisResponse;
import com.hamweather.aeris.response.EarthquakesResponse;
import com.hamweather.aeris.response.FiresResponse;
import com.hamweather.aeris.response.StormCellResponse;
import com.hamweather.aeris.response.StormReportsResponse;

public class MapFragment extends MapViewFragment implements OnAerisMapLongClickListener, AerisCallback,
    OnAerisMarkerInfoWindowClickListener{

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.single_tab_site_weather2,
            container, false);
    mapView = (AerisMapView) view.findViewById(R.id.aerisfragment_map);
    mapView.init(savedInstanceState, AerisMapType.GOOGLE);
    initMap();
    setHasOptionsMenu(true);
    return view;
}

/**
 * Inits the map with specific setting
 */
private void initMap() {
    mapView.moveToLocation(new LatLng(34.7, -86.7), 9);
    mapView.setOnAerisMapLongClickListener(this);
    mapView.setOnAerisWindowClickListener(this);

}

@Override
public void onResult(EndpointType endpointType, AerisResponse aerisResponse) {

}

@Override
public void onMapLongClick(double v, double v1) {

}

@Override
public void wildfireWindowPressed(FiresResponse firesResponse, AerisMarker aerisMarker) {

}

@Override
public void stormCellsWindowPressed(StormCellResponse stormCellResponse, AerisMarker aerisMarker) {

}

@Override
public void stormReportsWindowPressed(StormReportsResponse stormReportsResponse, AerisMarker aerisMarker) {

}

@Override
public void earthquakeWindowPressed(EarthquakesResponse earthquakesResponse, AerisMarker aerisMarker) {

}
}

另外,这是我在堆栈交换上的第一个Q,所以如果我没有遵守某个惯例或礼仪,请让我知道,我将尝试修复它。谢谢。

我设法让它工作起来了。对于任何有此问题的人,以下是我的步骤:

我首先从使用jar切换到使用gradle依赖项。根据他们的网站,在build.gradle(模块一)中添加以下内容

另外,请确保在ANDROID标记中添加以下内容,该标记可能已存在于文件中:

android {

    ...some other stuff...

    dexOptions{
        preDexLibraries = false
    }
}

仔细检查您是否拥有适用于谷歌地图的API密钥权限。然后它就起作用了。据我所知,这与使用编译过的jar有关,而不是repo版本。

我设法让它工作起来。对于任何有此问题的人,以下是我的步骤:

我首先从使用jar切换到使用gradle依赖项。根据他们的网站,在build.gradle(模块一)中添加以下内容

另外,请确保在ANDROID标记中添加以下内容,该标记可能已存在于文件中:

android {

    ...some other stuff...

    dexOptions{
        preDexLibraries = false
    }
}
仔细检查您是否拥有适用于谷歌地图的API密钥权限。然后它就起作用了。据我所知,这与使用编译过的jar有关,而不是repo版本

android {

    ...some other stuff...

    dexOptions{
        preDexLibraries = false
    }
}