在遵循官方教程后尝试使用Google Play Services V2库时,我会遇到以下异常。
java.lang.NoClassDefFoundError: com.google.android.gms.R$string
at com.google.android.gms.common.GooglePlayServicesUtil.b(Unknown Source)
at com.google.android.gms.common.GooglePlayServicesUtil.a(Unknown Source)
at com.google.android.gms.common.GooglePlayServicesUtil.getErrorDialog(Unknown Source)
我哪里出错了?
对于Android Studio:
1) 打开模块设置:
2)添加(导入)模块google_play_service_lib从SDK
3) 模块google\u play\u service\u lib check as Library
4) 添加库google\u play\u服务。SDK中的jar
5) 完成
版本2包含资源,必须作为库项目导入。请参阅上的说明http://developer.android.com/google/play-services/setup.html了解如何在各种IDE中实现这一点。
这些资源用于GooglePlayServicesUtil。getErrorDialog(),它指示用户安装、更新、启用等。如果设备上没有可用的Google Play服务,请使用它。
我也有过同样的问题,我正确地遵循了步骤,并且能够解决这个问题
首先(从Google Developer控制台设置您的项目)转到API控制台-Google Code
单击“创建”,然后要求添加项目名称,如图所示
之后,将相应的java和xml文件放入项目中。
主要活动。JAVA
package yourpackage;//Package name used while creating the Api key
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import android.os.Bundle;
import android.app.Activity;
import android.app.Dialog;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
public class MainActivity extends FragmentActivity {
GoogleMap googleMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Getting status
int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getBaseContext());
// Showing status
if(status==ConnectionResult.SUCCESS)
{
SupportMapFragment supportMapFragment = (SupportMapFragment)
getSupportFragmentManager().findFragmentById(R.id.map);
// Getting a reference to the map
googleMap = supportMapFragment.getMap();
}
else{
int requestCode = 10;
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(status, this, requestCode);
dialog.show();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
activity\u main。xml
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
AndroidManifest。xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="yourpackage"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<permission
android:name="yourpackage.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="yourpackage.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="yourpackage.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="YourAPIkey"/>
希望对你有帮助
问题内容: 我正在从python脚本中调用一个so文件。据我了解,我真的不需要释放使用ctypes在python中打开的共享库。但是,在我的so文件代码中,它dlopen另一个so文件并且不执行dlclose()。在这种情况下,从python端使用安全吗?我不必释放在ctypes内部加载的共享库soe文件吗? 问题答案: 始终遵循 “自己清洁后清理 ”的规则(尽管现代技术会为您提供清洁方面的帮助)
我在Android中的Proguard文件有一个错误。 -加注-加注-加注-加注-加注-加注 -libraryjars/home/jorider/wul4/adt-android/sdk/platforms/android-17/android.jar-libraryjars/home/jorider/wul4/adt-android/sdk/extras/android/support/v4/a
我用OpenCV编写了一个简单的应用程序。我把所有的jar文件放在/usr/local/hadoop/lib文件夹中。在运行hadoop作业时,我收到以下错误:
问题内容: 在Java中是否有任何可阻止的库! 问题答案: 在其网站上有Porter的词干提取器的实现。该代码不是Java风格的代码,但是它可以实现预期的功能,而且它只是一个类。
问题内容: 是否可以使用Go创建共享库(.so)? 更新 :为此创建了一个“ 问题 ”。 问题答案: 现在可以使用标志 您需要做的是首先运行以下命令: (以上代码使所有通用软件包都可共享!)然后 最后,在编译代码时,您需要运行: 上面这些就是什么,而不是静态链接所有内容而仅动态链接它们,您最终将获得更小的编译文件。为了让您了解我的带有静态链接的“ hello.go”文件为2.3MB,而使用动态链接
好的,这是我们得到的: 我们有两个库包,我们已经将它们编译成JAR。 我们用 而且 给我们装进罐子里。 现在我们想将这两个罐子包含到另一个Java项目中。 所以我们有 /project/src/a_pack/helloworld. /project/libs/starwars.jar /project/libs/barwars.jar /project/manifest.txt MANIFEST.