java.lang.NoClassDefFoundError:解析失败:Lcom/google/android/maps/GeoPoint
Posted
技术标签:
【中文标题】java.lang.NoClassDefFoundError:解析失败:Lcom/google/android/maps/GeoPoint【英文标题】:java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/maps/GeoPoint 【发布时间】:2018-01-28 13:06:19 【问题描述】:我正在尝试通过这种方法从地址获取纬度和经度:-
public GeoPoint getLocationFromAddress(String strAddress)
Geocoder coder = new Geocoder(this);
List<Address> address;
GeoPoint p1 = null;
try
address = coder.getFromLocationName(strAddress,5);
if (address==null)
return null;
Address location=address.get(0);
location.getLatitude();
location.getLongitude();
p1 = new GeoPoint((int) (location.getLatitude() * 1E6),
(int) (location.getLongitude() * 1E6));
return p1;
catch (IOException e)
e.printStackTrace();
return null;
但我得到了这个错误:-
java.lang.NoClassDefFoundError: 解析失败:Lcom/google/android/maps/GeoPoint
我在这里错过了什么?
我的完整错误:-
进程:breamex.happy_week_end,PID:22803 java.lang.NoClassDefFoundError:解析失败: Lcom/google/android/maps/GeoPoint; 在 breamex.happy_week_end.search.SearchActivity.getLocationFromAddress(SearchActivity.java:439) 在 breamex.happy_week_end.search.SearchActivity.search(SearchActivity.java:357) 在 breamex.happy_week_end.search.SearchActivity.access$000(SearchActivity.java:76) 在 breamex.happy_week_end.search.SearchActivity$1.onClick(SearchActivity.java:189) 在 android.view.View.performClick(View.java:5610) 在 android.view.View$PerformClick.run(View.java:22265) 在 android.os.Handler.handleCallback(Handler.java:751) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6077) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 引起:java.lang.ClassNotFoundException:找不到类 路径上的“com.google.android.maps.GeoPoint”:DexPathList[[zip 文件 "/数据/应用
我的完整Gradle:-
apply plugin: 'com.android.application'
android
compileSdkVersion 'Google Inc.:Google APIs:24'
buildToolsVersion '25.0.3'
defaultConfig
applicationId "app"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
dependencies
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2',
exclude group: 'com.android.support', module: 'support-annotations'
)
compile project(':stepper')
compile project(':slider')
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support:design:26.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.google.firebase:firebase-messaging:10.2.0'
compile 'org.greenrobot:eventbus:3.0.0'
compile 'com.facebook.android:facebook-android-sdk:4.22.0'
compile 'com.mcxiaoke.volley:library-aar:1.0.0'
compile 'com.google.android.gms:play-services:10.2.0'
compile 'com.google.android.gms:play-services-maps:10.2.0'
compile 'com.google.android.gms:play-services-auth:10.2.0'
compile 'com.google.firebase:firebase-auth:10.2.0'
compile 'com.android.support:support-v4:26.+'
compile 'com.github.bumptech.glide:glide:4.0.0-RC1'
compile 'de.hdodenhof:circleimageview:2.1.0'
compile 'com.jakewharton:butterknife:8.6.0'
testCompile 'junit:junit:4.12'
apply plugin: 'com.google.gms.google-services'
【问题讨论】:
发布完整的错误日志和 gradle 文件 @BhuvaneshBs gradle 将为您做什么,顺便说一句我没有使用它?,这是主要错误,没有更多有用的东西? 你不能定义这是一个确切的错误。这个错误可能是由其他原因引起的。因此,请发布您的完整错误日志。 我们要求您的 gradle 文件检查您的库。 @BhuvaneshBs 更新 【参考方案1】:您必须在您的应用程序中包含 multiDex。 在您的错误日志中查看以下错误。
ClassNotFoundException: Didn't find class "com.google.android.maps.GeoPoint" on path: DexPathList[[zip file "/data/app
将此添加到您的依赖项中。
compile 'com.android.support:multidex:1.0.1'
在你的 Gradle 中添加 multiDexEnabled true
android
defaultConfig
...
minSdkVersion 21
targetSdkVersion 26
multiDexEnabled true // add this line
...
在您的清单中添加 multiDex 应用程序类。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">
<application
android:name="android.support.multidex.MultiDexApplication" >
...
</application>
</manifest>
然后清理并重建您的项目。
希望它有所帮助:)
【讨论】:
以上是关于java.lang.NoClassDefFoundError:解析失败:Lcom/google/android/maps/GeoPoint的主要内容,如果未能解决你的问题,请参考以下文章