
我正在使用Retrofit来处理来自Mobile的ServersIDe数据.实施改造后,我得到以下例外.
我究竟做错了什么?
com.name.App_IDea W/System.err: java.lang.NoClassDefFoundError:
retrofit2.Utils
at retrofit2.Retrofit$Builder.baseUrl(Retrofit.java:434)
at com.name.App_IDea.utils.IDea.onCreate(IDea.java:103)
at androID.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
at androID.app.ActivityThread.handleBindApplication(ActivityThread.java:4541)
at androID.app.ActivityThread.access$1500(ActivityThread.java:151)
at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1381)
at androID.os.Handler.dispatchMessage(Handler.java:110)
at androID.os.Looper.loop(Looper.java:193)
at androID.app.ActivityThread.main(ActivityThread.java:5292)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:824)
at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:640)
at dalvik.system.NativeStart.main(Native Method)
改造初始
mRetrofit = new Retrofit.Builder() .baseUrl(AppConstance.APP_URL) .addConverterFactory(ScalarsConverterFactory.create()) .addConverterFactory(GsonConverterFactory.create()) .clIEnt(getokhttpClIEnt()) .build();Gradle文件
apply plugin: 'com.androID.application'androID { compileSdkVersion 23 buildToolsversion '23.0.3' defaultConfig { applicationID "com.name.App_IDea" minSdkVersion 14 targetSdkVersion 23 versionCode 1 versionname "9" multIDexEnabled true } buildTypes { release { MinifyEnabled false proguardfiles getDefaultProguardfile('proguard-androID.txt'), 'proguard-rules.pro' } }}dependencIEs { compile filetree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.androID.support:appcompat-v7:23.3.0' compile 'com.squareup.retrofit2:retrofit:2.0.2' compile 'com.squareup.retrofit2:converter-scalars:2.0.0' compile 'com.Google.code.gson:gson:2.2.4' compile 'com.squareup.retrofit2:converter-gson:2.0.0' compile 'com.jakewharton:butterknife:7.0.1' compile 'com.androID.support:design:23.3.0' compile 'com.androID.support:cardvIEw-v7:23.3.0' compile 'com.Google.androID.gms:play-services:8.4.0' compile 'com.squareup.okhttp3:okhttp:3.2.0' compile 'com.squareup.okhttp3:okhttp-urlconnection:3.2.0' compile 'com.androID.support:support-v4:23.3.0'}应用类
import androID.app.Application;import androID.content.Context;import androID.content.Intent;import androID.database.sqlite.sqliteDatabase;import androID.database.sqlite.sqliteOpenHelper;import androID.os.Environment;import androID.support.multIDex.MultIDex;import androID.util.Log;import java.io.file;import java.security.cert.CertificateException;import javax.net.ssl.HostnameVerifIEr;import javax.net.ssl.SSLContext;import javax.net.ssl.SSLSession;import javax.net.ssl.SSLSocketFactory;import javax.net.ssl.TrustManager;import javax.net.ssl.x509trustmanager;import okhttp3.OkhttpClIEnt;import retrofit2.Retrofit;import retrofit2.converter.scalars.ScalarsConverterFactory;import retrofit2.converter.gson.GsonConverterFactory;public class IDea extends Application { public static Retrofit mRetrofit; public static IDeaService Iservice; public static LoginResponceModel loinResponce; public static SettingsModel settingModel; public static LocationModel location = new LocationModel(); private static sqliteDatabase dbase; private static String file_PATH; public static sqliteDatabase getDataBase() { return dbase; } public static String getfilePath() { return file_PATH; } private static class DatabaseHelper extends sqliteOpenHelper { DatabaseHelper(Context context) { super(context, "App", null, 1); } @OverrIDe public voID onCreate(sqliteDatabase db) { db.execsql(AppConstance.DbConstans.tblLogin); Log.i("DB", "Created"); } @OverrIDe public voID onUpgrade(sqliteDatabase db, int oldVersion, int newVersion) { onCreate(db); } } public static voID deletealltables() { getDataBase().execsql("DELETE FROM login"); } @OverrIDe public voID onCreate() { super.onCreate(); try { mRetrofit = new Retrofit.Builder() .baseUrl(AppConstance.APP_URL) .addConverterFactory(ScalarsConverterFactory.create()) .addConverterFactory(GsonConverterFactory.create()) .clIEnt(getokhttpClIEnt()) .build(); Iservice = mRetrofit.create(IDeaService.class); MultIDex.install(this); DatabaseHelper dbHelper = new DatabaseHelper(this); dbase = dbHelper.getWritableDatabase(); AppDataService appDataService = new AppDataService(); loinResponce = appDataService.getLoginDetails(); settingModel = appDataService.getSettings(); file_PATH = getAppfilePath(); startService(new Intent(IDea.this, LocationTracker.class)); } catch (Exception e) { e.printstacktrace(); } } public String combinefilePath(String path1, String path2) { file file1 = new file(path1); file file2 = new file(file1, path2); return file2.getPath(); } public String getAppfilePath() { String dsPath; if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) dsPath = combinefilePath(Environment .getExternalStorageDirectory().getabsolutePath(), "androID/data/IDea/"); else dsPath = this.getDir( this.getPackagename(), 0).getabsolutePath(); new file(dsPath).mkdirs(); return dsPath; } private OkhttpClIEnt getokhttpClIEnt() { try { // Create a trust manager that does not valIDate certificate chains final TrustManager[] trustAllCerts = new TrustManager[]{ new x509trustmanager() { @OverrIDe public voID checkClIEntTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException { } @OverrIDe public voID checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException { } @OverrIDe public java.security.cert.X509Certificate[] getAcceptedissuers() { return new java.security.cert.X509Certificate[]{}; } } }; // Install the all-trusting trust manager final SSLContext sslContext = SSLContext.getInstance("SSL"); sslContext.init(null, trustAllCerts, new java.security.SecureRandom()); // Create an ssl socket factory with our all-trusting manager final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory(); OkhttpClIEnt.Builder builder = new OkhttpClIEnt.Builder(); builder.sslSocketFactory(sslSocketFactory); builder.hostnameVerifIEr(new HostnameVerifIEr() { @OverrIDe public boolean verify(String hostname, SSLSession session) { return true; } }); OkhttpClIEnt okhttpClIEnt = builder.build(); return okhttpClIEnt; } catch (Exception e) { throw new RuntimeException(e); } }}解决方法:
这是Gradle bulID配置问题我也有同样的问题
在Gradle你的使用
compile 'com.Google.androID.gms:play-services:8.4.0'Enire Google Playservice lib可以更改您的项目中使用的lib
例
com.Google.androID.gms:play-services-gcm:8.4.0 com.Google.androID.gms:play-services-maps:8.4.0com.Google.androID.gms:play-services-auth:8.4.0请参阅此URl https://developers.google.com/android/guides/setup#add_google_play_services_to_your_project
总结以上是内存溢出为你收集整理的android – java.lang.NoClassDefFoundError retrofit2.Utils全部内容,希望文章能够帮你解决android – java.lang.NoClassDefFoundError retrofit2.Utils所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)