当我试图在手机上运行我的应用程序时,当我试图从一个活动转到其他它的投掷错误Unfortunately app has stopped !
&当我在Logcat中检查时,我收到以下错误消息...
12-07 03:12:57.958 17518-17518/com.android.mads.madses E/AndroidRuntime? FATAL EXCEPTION: main Process: com.android.mads.madses, PID: 17518 java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/internal/widget/TintManager; at android.support.design.widget.TabLayout$TabView.(TabLayout.java:1145) at android.support.design.widget.TabLayout.createTabView(TabLayout.java:635) at android.support.design.widget.TabLayout.addTabView(TabLayout.java:669) at android.support.design.widget.TabLayout.addTab(TabLayout.java:365) at android.support.design.widget.TabLayout.addTab(TabLayout.java:340) at android.support.design.widget.TabLayout.setTabsFromPagerAdapter(TabLayout.java:624) at android.support.design.widget.TabLayout.setupWithViewPager(TabLayout.java:595) at com.android.mads.madses.RegisterActivity.onCreate(RegisterActivity.java:35) at android.app.Activity.performCreate(Activity.java:5953) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1128) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2267) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2388) at android.app.ActivityThread.access$800(ActivityThread.java:148) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1292) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5312) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696) Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.internal.widget.TintManager" on path: DexPathList[[zip file "/data/app/com.android.mads.madses-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:511) at java.lang.ClassLoader.loadClass(ClassLoader.java:469) at android.support.design.widget.TabLayout$TabView. (TabLayout.java:1145) at android.support.design.widget.TabLayout.createTabView(TabLayout.java:635) at android.support.design.widget.TabLayout.addTabView(TabLayout.java:669) at android.support.design.widget.TabLayout.addTab(TabLayout.java:365) at android.support.design.widget.TabLayout.addTab(TabLayout.java:340) at android.support.design.widget.TabLayout.setTabsFromPagerAdapter(TabLayout.java:624) at android.support.design.widget.TabLayout.setupWithViewPager(TabLayout.java:595) at com.android.mads.madses.RegisterActivity.onCreate(RegisterActivity.java:35) at android.app.Activity.performCreate(Activity.java:5953) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1128) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2267) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2388) at android.app.ActivityThread.access$800(ActivityThread.java:148) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1292) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5312) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696) Suppressed: java.lang.ClassNotFoundException: android.support.v7.internal.widget.TintManager at java.lang.Class.classForName(Native Method) at java.lang.BootClassLoader.findClass(ClassLoader.java:781) at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) at java.lang.ClassLoader.loadClass(ClassLoader.java:504) ... 22 more Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
有人可以帮忙吗?
代码: Main RegisterActivity(父标签活动)
package com.android.mads.madses; import android.os.Bundle; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import java.util.ArrayList; import java.util.List; public class RegisterActivity extends AppCompatActivity{ private Toolbar toolbar; private TabLayout tabLayout; private ViewPager viewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); viewPager = (ViewPager) findViewById(R.id.viewpager); setupViewPager(viewPager); tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); } private void setupViewPager(ViewPager viewPager) { ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); adapter.addFrag(new LoginInfoFragment(), "LoginInfo"); adapter.addFrag(new PersonalInfoFragment(), "PersonalInfo"); adapter.addFrag(new ContactInfoFragment(), "ContactInfo"); adapter.addFrag(new VechicleInfoFragment(), "VechicleInfo"); viewPager.setAdapter(adapter); } class ViewPagerAdapter extends FragmentPagerAdapter { private final ListmFragmentList = new ArrayList<>(); private final List mFragmentTitleList = new ArrayList<>(); public ViewPagerAdapter(FragmentManager manager) { super(manager); } @Override public Fragment getItem(int position) { return mFragmentList.get(position); } @Override public int getCount() { return mFragmentList.size(); } public void addFrag(Fragment fragment, String title) { mFragmentList.add(fragment); mFragmentTitleList.add(title); } @Override public CharSequence getPageTitle(int position) { return mFragmentTitleList.get(position); } } }
其中一个的片段活性(所有其它片段具有相同的码)
package com.android.mads.madses; import android.support.v4.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; /** * Created by Administrator on 07-12-2015. */ public class VechicleInfoFragment extends Fragment{ public VechicleInfoFragment(){ } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_vechicleinfo , container, false); } }
登录活动(当我点击'没有帐户?在这里注册'app停止时)
package com.android.mads.madses; import android.app.Activity; import android.app.ProgressDialog; import android.content.Intent; import android.graphics.Paint; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.android.mads.app.AppConfig; import com.android.mads.app.AppController; import com.android.mads.helper.SQLiteHandler; import com.android.mads.helper.SessionManager; import com.android.volley.Request; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.StringRequest; import org.json.JSONException; import org.json.JSONObject; import java.util.HashMap; import java.util.Map; public class LoginActivity extends Activity { private EditText ed_email, ed_password; private Button btn_login, btn_newUser; private ProgressDialog pDialog; private SessionManager session; private SQLiteHandler db; private static final String TAG = LoginActivity.class.getSimpleName(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); ed_email = (EditText) findViewById(R.id.edtxt_login_email); ed_password = (EditText) findViewById(R.id.edtxt_login_password); btn_login = (Button) findViewById(R.id.btn_login); btn_newUser = (Button) findViewById(R.id.btn_login_newUser); pDialog = new ProgressDialog(this); session = new SessionManager(getApplicationContext()); db = new SQLiteHandler(getApplicationContext()); if (session.isLoggedIn()) { Intent i = new Intent(LoginActivity.this, HomeActivity.class); startActivity(i); finish(); } btn_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String email = ed_email.getText().toString(); String password = ed_password.getText().toString(); if (email.isEmpty() || password.isEmpty()) { Toast.makeText(LoginActivity.this, "Please Enter Details", Toast.LENGTH_LONG); } else { checkLogin(email, password); } } }); btn_newUser.setPaintFlags(btn_newUser.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); btn_newUser.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(LoginActivity.this, RegisterActivity.class); startActivity(i); finish(); } }); } public void checkLogin(final String email, final String password) { String tag_req = "login_request"; pDialog.setMessage("Logging In..."); showDialog(); final StringRequest strR = new StringRequest( Request.Method.POST, AppConfig.LOGIN_URL, new Response.Listener() { @Override public void onResponse(String response) { hideDialog(); try { JSONObject jsb = new JSONObject(response); boolean error = jsb.getBoolean("error"); if (!error) { String uid = jsb.getString("uid"); JSONObject user = jsb.getJSONObject("user"); String fname = user.getString("fname"); String lname = user.getString("lname"); String email = user.getString("email"); String dob = user.getString("dob"); String address = user.getString("address"); String bloodgroup = user.getString("bloodgroup"); String contact1 = user.getString("contact1"); String contact2 = user.getString("contact2"); String vechiclename = user.getString("vechiclename"); String fueltype = user.getString("fueltype"); String mileage = user.getString("mileage"); String created_at = user.getString("created_at"); db.addUser(uid, fname, lname, email, dob, address, bloodgroup, contact1, contact2, vechiclename, fueltype, mileage, created_at); session.setLogin(true); Intent i = new Intent(LoginActivity.this, HomeActivity.class); startActivity(i); finish(); } else { String error_msg = jsb.getString("error_msg"); Toast.makeText(LoginActivity.this, error_msg, Toast.LENGTH_LONG).show(); } } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.d("TAG ", error.getMessage()); } } ) { public Map getParams() { Map p = new HashMap (); p.put("tag", "login"); p.put("email", email); p.put("password", password); return p; } }; AppController.getmInstance().addToRequestQueue(strR, tag_req); } public void showDialog() { if (!pDialog.isShowing()) { pDialog.show(); } } public void hideDialog() { if (pDialog.isShowing()) { pDialog.dismiss(); } } }
的build.gradle
apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { applicationId "com.android.mads.madses" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.1' compile project (":volley") }
Yaron Yosef.. 7
我将appcompat-v7降级为:
编译'com.android.support:appcompat-v7:23.1.1'
至:
编译'com.android.support:appcompat-v7:23.1.0'
它起作用了.
我将appcompat-v7降级为:
编译'com.android.support:appcompat-v7:23.1.1'
至:
编译'com.android.support:appcompat-v7:23.1.0'
它起作用了.