Android 应用无法在 bluestack 中启动
Android app won't start in bluestack
我正在尝试学习本教程 http://www.androidhive.info/2015/04/android-getting-started-with-material-design/。当我到达第 13 步时我测试了该应用程序并且它工作正常但是当我到达第 23 步时 Navigation Drawer 我遇到了一个问题
android.support.v7.widget.RecyclerView cannot be instantiated
阅读其他网站关于此问题的评论后,我得出结论,我必须在预览面板上设置 API 级别 22,但由于我的 ADT 与它不兼容,我尝试更新它(我的 ADT ) 一切顺利,直到我到达第 23 步,我现在尝试测试我的应用程序是否 运行ning 基于教程。令我沮丧的是,ADT 是
unable to bind xxxx to DDMS
我尝试按照包括本网站在内的各个网站的其他说明再次修复错误。我从 windows 主机文件中添加了 127.0.0.1 localhost
因为有 none 除了它刚刚被评论。我什至尝试在 cmd 中使用此代码 adb kill-server
和 adb start-server
。我还去了 window -> preference -> Android -> DDMS
并在那里尝试输入值 8601 on Base local debugger port
和 check the use ADBHOST
并添加了 values 127.0.0.1
。我一一做了,但不幸的是错误仍然存在。
我面临的问题是应用无法启动或 运行 在 bluestack 上。我尝试了 运行ning 我的其他应用程序项目,看看它们是否恰好也没有 运行 但似乎它们 运行ning 顺利并且没有错误或在 bluestack 上崩溃所以我想通了与我在上述教程中关注的项目有关,但我不知道如何解决,因为我的所有代码都很好,没有红色标记或错误,但它们只是有警告,看起来没问题我.
这是我的 Manifest.xml(您可以在上面的教程中看到其余代码,直到第 23 步)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.eureka4.studentdictionary"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/MyMaterialTheme" >
<activity
android:name=".activity.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
我的 SDK 已经是最新的,最新版本是 23,我的支持库也是 23。
这是我的 LogCat 我添加了从冗长到错误的所有内容:
02-21 18:56:22.596: W/dalvikvm(15690): VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;)
02-21 18:56:22.596: I/dalvikvm(15690): Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.view.WindowCallbackWrapper.onSearchRequested
02-21 18:56:22.596: W/dalvikvm(15690): VFY: unable to resolve interface method 16375: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z
02-21 18:56:22.596: D/dalvikvm(15690): VFY: replacing opcode 0x72 at 0x0002
02-21 18:56:22.596: I/dalvikvm(15690): Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.view.WindowCallbackWrapper.onWindowStartingActionMode
02-21 18:56:22.596: W/dalvikvm(15690): VFY: unable to resolve interface method 16379: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
02-21 18:56:22.596: D/dalvikvm(15690): VFY: replacing opcode 0x72 at 0x0002
02-21 18:56:22.656: I/AppCompatViewInflater(15690): app:theme is now deprecated. Please move to using android:theme instead.
02-21 18:56:22.656: I/dalvikvm(15690): Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.widget.TintTypedArray.getChangingConfigurations
02-21 18:56:22.656: W/dalvikvm(15690): VFY: unable to resolve virtual method 406: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
02-21 18:56:22.656: D/dalvikvm(15690): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:22.656: I/dalvikvm(15690): Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.widget.TintTypedArray.getType
02-21 18:56:22.656: W/dalvikvm(15690): VFY: unable to resolve virtual method 428: Landroid/content/res/TypedArray;.getType (I)I
02-21 18:56:22.656: D/dalvikvm(15690): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:22.706: D/AndroidRuntime(15690): Shutting down VM
02-21 18:56:22.706: W/dalvikvm(15690): threadid=1: thread exiting with uncaught exception (group=0x55e05b20)
02-21 18:56:22.706: D/AndroidRuntime(15690): procName from cmdline: com.eureka4.studentdictionary
02-21 18:56:22.706: E/AndroidRuntime(15690): in writeCrashedAppName, pkgName :com.eureka4.studentdictionary
02-21 18:56:22.746: I/Process(15690): Sending signal. PID: 15690 SIG: 9
02-21 18:56:22.936: W/dalvikvm(15708): VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;)
02-21 18:56:22.936: I/dalvikvm(15708): Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.view.WindowCallbackWrapper.onSearchRequested
02-21 18:56:22.936: W/dalvikvm(15708): VFY: unable to resolve interface method 16375: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z
02-21 18:56:22.936: D/dalvikvm(15708): VFY: replacing opcode 0x72 at 0x0002
02-21 18:56:22.936: I/dalvikvm(15708): Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.view.WindowCallbackWrapper.onWindowStartingActionMode
02-21 18:56:22.936: W/dalvikvm(15708): VFY: unable to resolve interface method 16379: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
02-21 18:56:22.936: D/dalvikvm(15708): VFY: replacing opcode 0x72 at 0x0002
02-21 18:56:22.966: I/AppCompatViewInflater(15708): app:theme is now deprecated. Please move to using android:theme instead.
02-21 18:56:22.966: I/dalvikvm(15708): Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.widget.TintTypedArray.getChangingConfigurations
02-21 18:56:22.966: W/dalvikvm(15708): VFY: unable to resolve virtual method 406: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
02-21 18:56:22.976: D/dalvikvm(15708): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:22.976: I/dalvikvm(15708): Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.widget.TintTypedArray.getType
02-21 18:56:22.976: W/dalvikvm(15708): VFY: unable to resolve virtual method 428: Landroid/content/res/TypedArray;.getType (I)I
02-21 18:56:22.976: D/dalvikvm(15708): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:42.506: W/dalvikvm(15781): VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;)
02-21 18:56:42.506: I/dalvikvm(15781): Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.view.WindowCallbackWrapper.onSearchRequested
02-21 18:56:42.506: W/dalvikvm(15781): VFY: unable to resolve interface method 16375: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z
02-21 18:56:42.506: D/dalvikvm(15781): VFY: replacing opcode 0x72 at 0x0002
02-21 18:56:42.506: I/dalvikvm(15781): Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.view.WindowCallbackWrapper.onWindowStartingActionMode
02-21 18:56:42.516: W/dalvikvm(15781): VFY: unable to resolve interface method 16379: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
02-21 18:56:42.516: D/dalvikvm(15781): VFY: replacing opcode 0x72 at 0x0002
02-21 18:56:42.546: I/AppCompatViewInflater(15781): app:theme is now deprecated. Please move to using android:theme instead.
02-21 18:56:42.556: I/dalvikvm(15781): Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.widget.TintTypedArray.getChangingConfigurations
02-21 18:56:42.556: W/dalvikvm(15781): VFY: unable to resolve virtual method 406: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
02-21 18:56:42.556: D/dalvikvm(15781): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:42.556: I/dalvikvm(15781): Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.widget.TintTypedArray.getType
02-21 18:56:42.556: W/dalvikvm(15781): VFY: unable to resolve virtual method 428: Landroid/content/res/TypedArray;.getType (I)I
02-21 18:56:42.556: D/dalvikvm(15781): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:42.586: D/AndroidRuntime(15781): Shutting down VM
02-21 18:56:42.596: W/dalvikvm(15781): threadid=1: thread exiting with uncaught exception (group=0x55e05b20)
02-21 18:56:42.596: I/Process(15781): Sending signal. PID: 15781 SIG: 9
02-21 18:56:42.596: D/AndroidRuntime(15781): procName from cmdline: com.eureka4.studentdictionary
02-21 18:56:42.596: E/AndroidRuntime(15781): in writeCrashedAppName, pkgName :com.eureka4.studentdictionary
02-21 18:56:42.596: D/AndroidRuntime(15781): file written successfully with content: com.eureka4.studentdictionary StringBuffer : ;com.eureka4.studentdictionary
02-21 18:56:42.596: E/AndroidRuntime(15781): FATAL EXCEPTION: main
02-21 18:56:42.596: E/AndroidRuntime(15781): Process: com.eureka4.studentdictionary, PID: 15781
02-21 18:56:42.596: E/AndroidRuntime(15781): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.eureka4.studentdictionary/com.eureka4.studentdictionary.activity.MainActivity}: android.view.InflateException: Binary XML file line #36: Error inflating class fragment
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.ActivityThread.access0(ActivityThread.java:135)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.os.Handler.dispatchMessage(Handler.java:102)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.os.Looper.loop(Looper.java:136)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.ActivityThread.main(ActivityThread.java:5021)
02-21 18:56:42.596: E/AndroidRuntime(15781): at java.lang.reflect.Method.invokeNative(Native Method)
02-21 18:56:42.596: E/AndroidRuntime(15781): at java.lang.reflect.Method.invoke(Method.java:515)
02-21 18:56:42.596: E/AndroidRuntime(15781): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827)
02-21 18:56:42.596: E/AndroidRuntime(15781): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643)
02-21 18:56:42.596: E/AndroidRuntime(15781): at dalvik.system.NativeStart.main(Native Method)
02-21 18:56:42.596: E/AndroidRuntime(15781): Caused by: android.view.InflateException: Binary XML file line #36: Error inflating class fragment
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:256)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
02-21 18:56:42.596: E/AndroidRuntime(15781): at com.eureka4.studentdictionary.activity.MainActivity.onCreate(MainActivity.java:25)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.Activity.performCreate(Activity.java:5231)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1090)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
02-21 18:56:42.596: E/AndroidRuntime(15781): ... 11 more
02-21 18:56:42.596: E/AndroidRuntime(15781): Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment com.eureka4.studentdictionary.FragmentDrawer: make sure class name exists, is public, and has an empty constructor that is public
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.Fragment.instantiate(Fragment.java:597)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.Fragment.instantiate(Fragment.java:561)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.Activity.onCreateView(Activity.java:4778)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:34)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:79)
02-21 18:56:42.596: E/AndroidRuntime(15781): at com.eureka4.studentdictionary.activity.MainActivity.onCreateView(MainActivity.java:1)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
02-21 18:56:42.596: E/AndroidRuntime(15781): ... 21 more
02-21 18:56:42.596: E/AndroidRuntime(15781): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.eureka4.studentdictionary.FragmentDrawer" on path: DexPathList[[zip file "/data/app/com.eureka4.studentdictionary-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.eureka4.studentdictionary-2, /system/lib, /system/lib/arm, /data/downloads]]
02-21 18:56:42.596: E/AndroidRuntime(15781): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
02-21 18:56:42.596: E/AndroidRuntime(15781): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
02-21 18:56:42.596: E/AndroidRuntime(15781): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.Fragment.instantiate(Fragment.java:583)
02-21 18:56:42.596: E/AndroidRuntime(15781): ... 27 more
02-21 18:56:42.756: I/AppCompatViewInflater(15794): app:theme is now deprecated. Please move to using android:theme instead.
02-21 18:56:42.756: I/dalvikvm(15794): Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.widget.TintTypedArray.getChangingConfigurations
02-21 18:56:42.786: W/dalvikvm(15794): VFY: unable to resolve virtual method 406: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
02-21 18:56:42.786: D/dalvikvm(15794): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:42.786: I/dalvikvm(15794): Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.widget.TintTypedArray.getType
02-21 18:56:42.786: W/dalvikvm(15794): VFY: unable to resolve virtual method 428: Landroid/content/res/TypedArray;.getType (I)I
02-21 18:56:42.786: D/dalvikvm(15794): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:42.786: D/AndroidRuntime(15794): Shutting down VM
02-21 18:56:42.786: W/dalvikvm(15794): threadid=1: thread exiting with uncaught exception (group=0x55e05b20)
02-21 18:56:42.786: D/AndroidRuntime(15794): procName from cmdline: com.eureka4.studentdictionary
02-21 18:56:42.786: E/AndroidRuntime(15794): in writeCrashedAppName, pkgName :com.eureka4.studentdictionary
02-21 18:56:42.786: D/AndroidRuntime(15794): file written successfully with content: com.eureka4.studentdictionary StringBuffer : ;com.eureka4.studentdictionary
我正在使用 Eclipse,因为它的 CPU 要求比 Android Studio 轻。另外,我的模拟器是bluestack。
这是我的 FragmentDrawer.java
package com.eureka4.studentdictionary;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.GestureDetector;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import com.eureka4.studentdictionary.R;
public class FragmentDrawer extends Fragment {
private static String TAG = FragmentDrawer.class.getSimpleName();
private RecyclerView recyclerView;
private ActionBarDrawerToggle mDrawerToggle;
private DrawerLayout mDrawerLayout;
private NavigationDrawerAdapter adapter;
private View containerView;
private static String[] titles = null;
private FragmentDrawerListener drawerListener;
public FragmentDrawer() {
}
public void setDrawerListener(FragmentDrawerListener listener) {
this.drawerListener = listener;
}
public static List<NavDrawerItem> getData() {
List<NavDrawerItem> data = new ArrayList<>();
// preparing navigation drawer items
for (int i = 0; i < titles.length; i++) {
NavDrawerItem navItem = new NavDrawerItem();
navItem.setTitle(titles[i]);
data.add(navItem);
}
return data;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// drawer labels
titles = getActivity().getResources().getStringArray(R.array.nav_drawer_labels);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflating view layout
View layout = inflater.inflate(R.layout.fragment_navigation_drawer, container, false);
recyclerView = (RecyclerView) layout.findViewById(R.id.drawerList);
adapter = new NavigationDrawerAdapter(getActivity(), getData());
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
recyclerView.addOnItemTouchListener(new RecyclerTouchListener(getActivity(), recyclerView, new ClickListener() {
@Override
public void onClick(View view, int position) {
drawerListener.onDrawerItemSelected(view, position);
mDrawerLayout.closeDrawer(containerView);
}
@Override
public void onLongClick(View view, int position) {
}
}));
return layout;
}
public void setUp(int fragmentId, DrawerLayout drawerLayout, final Toolbar toolbar) {
containerView = getActivity().findViewById(fragmentId);
mDrawerLayout = drawerLayout;
mDrawerToggle = new ActionBarDrawerToggle(getActivity(), drawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close) {
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
getActivity().invalidateOptionsMenu();
}
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
getActivity().invalidateOptionsMenu();
}
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
super.onDrawerSlide(drawerView, slideOffset);
toolbar.setAlpha(1 - slideOffset / 2);
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
mDrawerLayout.post(new Runnable() {
@Override
public void run() {
mDrawerToggle.syncState();
}
});
}
public static interface ClickListener {
public void onClick(View view, int position);
public void onLongClick(View view, int position);
}
static class RecyclerTouchListener implements RecyclerView.OnItemTouchListener {
private GestureDetector gestureDetector;
private ClickListener clickListener;
public RecyclerTouchListener(Context context, final RecyclerView recyclerView, final ClickListener clickListener) {
this.clickListener = clickListener;
gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onSingleTapUp(MotionEvent e) {
return true;
}
@SuppressWarnings("deprecation")
@Override
public void onLongPress(MotionEvent e) {
View child = recyclerView.findChildViewUnder(e.getX(), e.getY());
if (child != null && clickListener != null) {
clickListener.onLongClick(child, recyclerView.getChildPosition(child));
}
}
});
}
@SuppressWarnings("deprecation")
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
View child = rv.findChildViewUnder(e.getX(), e.getY());
if (child != null && clickListener != null && gestureDetector.onTouchEvent(e)) {
clickListener.onClick(child, rv.getChildPosition(child));
}
return false;
}
@Override
public void onTouchEvent(RecyclerView rv, MotionEvent e) {
}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
}
}
public interface FragmentDrawerListener {
public void onDrawerItemSelected(View view, int position);
}
}
您的问题是:
02-21 18:56:42.596: E/AndroidRuntime(15781): Caused by: android.view.InflateException: Binary XML file line #36: Error inflating class fragment
...二进制 XML 文件行 #36...
确保您的布局 xml 文件正确。
看看这个:
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.eureka4.studentdictionary.FragmentDrawer"
顺便说一下,我建议您使用 GenyMotion 而不是 BlueStacks。
截至 2020 年,使用 Android SDK 附带的 Android 模拟器可能是测试应用程序的最佳方式。
确保所有导入都是正确的并仔细检查依赖项。最好是删除它们并重新添加它们。重建您的项目并重试。
可能的解决方案:
- 重建
- 清理项目,确保所有依赖项都正确并再次测试应用程序
- 在另一个模拟器上测试
- 确保您的主题是正确的
- 确保您需要的所有文件都存在
经过无数小时试图解决问题。我以某种方式设法解决了这个问题,所以我要回答我自己的问题 post,希望它也能帮助其他人。考虑到我已经将 java 类 组织到不同的包中,即 com.eureka4.studentdictionary.adapter、com.eureka4.studentdictionary.model 和 com.eureka4.studentdictionary.activity,我一定忽略了我的 xml 文件上的包路径(感谢 @xdevs23 提供的术语)。对于解决方案,我尝试折射所有 java 文件并将它们移动到我的主包 com.eureka4.studentdictionary。问题似乎已经解决了。
或者:
@xdevs23 的回答也可能有帮助。
总结:
确保所有引用 java 类 的文件都添加了正确的包(但不确定在 Eclipse 中添加包是否会导致问题)。
我正在尝试学习本教程 http://www.androidhive.info/2015/04/android-getting-started-with-material-design/。当我到达第 13 步时我测试了该应用程序并且它工作正常但是当我到达第 23 步时 Navigation Drawer 我遇到了一个问题
android.support.v7.widget.RecyclerView cannot be instantiated
阅读其他网站关于此问题的评论后,我得出结论,我必须在预览面板上设置 API 级别 22,但由于我的 ADT 与它不兼容,我尝试更新它(我的 ADT ) 一切顺利,直到我到达第 23 步,我现在尝试测试我的应用程序是否 运行ning 基于教程。令我沮丧的是,ADT 是
unable to bind xxxx to DDMS
我尝试按照包括本网站在内的各个网站的其他说明再次修复错误。我从 windows 主机文件中添加了 127.0.0.1 localhost
因为有 none 除了它刚刚被评论。我什至尝试在 cmd 中使用此代码 adb kill-server
和 adb start-server
。我还去了 window -> preference -> Android -> DDMS
并在那里尝试输入值 8601 on Base local debugger port
和 check the use ADBHOST
并添加了 values 127.0.0.1
。我一一做了,但不幸的是错误仍然存在。
我面临的问题是应用无法启动或 运行 在 bluestack 上。我尝试了 运行ning 我的其他应用程序项目,看看它们是否恰好也没有 运行 但似乎它们 运行ning 顺利并且没有错误或在 bluestack 上崩溃所以我想通了与我在上述教程中关注的项目有关,但我不知道如何解决,因为我的所有代码都很好,没有红色标记或错误,但它们只是有警告,看起来没问题我.
这是我的 Manifest.xml(您可以在上面的教程中看到其余代码,直到第 23 步)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.eureka4.studentdictionary"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/MyMaterialTheme" >
<activity
android:name=".activity.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
我的 SDK 已经是最新的,最新版本是 23,我的支持库也是 23。
这是我的 LogCat 我添加了从冗长到错误的所有内容:
02-21 18:56:22.596: W/dalvikvm(15690): VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;)
02-21 18:56:22.596: I/dalvikvm(15690): Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.view.WindowCallbackWrapper.onSearchRequested
02-21 18:56:22.596: W/dalvikvm(15690): VFY: unable to resolve interface method 16375: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z
02-21 18:56:22.596: D/dalvikvm(15690): VFY: replacing opcode 0x72 at 0x0002
02-21 18:56:22.596: I/dalvikvm(15690): Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.view.WindowCallbackWrapper.onWindowStartingActionMode
02-21 18:56:22.596: W/dalvikvm(15690): VFY: unable to resolve interface method 16379: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
02-21 18:56:22.596: D/dalvikvm(15690): VFY: replacing opcode 0x72 at 0x0002
02-21 18:56:22.656: I/AppCompatViewInflater(15690): app:theme is now deprecated. Please move to using android:theme instead.
02-21 18:56:22.656: I/dalvikvm(15690): Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.widget.TintTypedArray.getChangingConfigurations
02-21 18:56:22.656: W/dalvikvm(15690): VFY: unable to resolve virtual method 406: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
02-21 18:56:22.656: D/dalvikvm(15690): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:22.656: I/dalvikvm(15690): Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.widget.TintTypedArray.getType
02-21 18:56:22.656: W/dalvikvm(15690): VFY: unable to resolve virtual method 428: Landroid/content/res/TypedArray;.getType (I)I
02-21 18:56:22.656: D/dalvikvm(15690): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:22.706: D/AndroidRuntime(15690): Shutting down VM
02-21 18:56:22.706: W/dalvikvm(15690): threadid=1: thread exiting with uncaught exception (group=0x55e05b20)
02-21 18:56:22.706: D/AndroidRuntime(15690): procName from cmdline: com.eureka4.studentdictionary
02-21 18:56:22.706: E/AndroidRuntime(15690): in writeCrashedAppName, pkgName :com.eureka4.studentdictionary
02-21 18:56:22.746: I/Process(15690): Sending signal. PID: 15690 SIG: 9
02-21 18:56:22.936: W/dalvikvm(15708): VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;)
02-21 18:56:22.936: I/dalvikvm(15708): Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.view.WindowCallbackWrapper.onSearchRequested
02-21 18:56:22.936: W/dalvikvm(15708): VFY: unable to resolve interface method 16375: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z
02-21 18:56:22.936: D/dalvikvm(15708): VFY: replacing opcode 0x72 at 0x0002
02-21 18:56:22.936: I/dalvikvm(15708): Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.view.WindowCallbackWrapper.onWindowStartingActionMode
02-21 18:56:22.936: W/dalvikvm(15708): VFY: unable to resolve interface method 16379: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
02-21 18:56:22.936: D/dalvikvm(15708): VFY: replacing opcode 0x72 at 0x0002
02-21 18:56:22.966: I/AppCompatViewInflater(15708): app:theme is now deprecated. Please move to using android:theme instead.
02-21 18:56:22.966: I/dalvikvm(15708): Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.widget.TintTypedArray.getChangingConfigurations
02-21 18:56:22.966: W/dalvikvm(15708): VFY: unable to resolve virtual method 406: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
02-21 18:56:22.976: D/dalvikvm(15708): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:22.976: I/dalvikvm(15708): Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.widget.TintTypedArray.getType
02-21 18:56:22.976: W/dalvikvm(15708): VFY: unable to resolve virtual method 428: Landroid/content/res/TypedArray;.getType (I)I
02-21 18:56:22.976: D/dalvikvm(15708): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:42.506: W/dalvikvm(15781): VFY: unable to find class referenced in signature (Landroid/view/SearchEvent;)
02-21 18:56:42.506: I/dalvikvm(15781): Could not find method android.view.Window$Callback.onSearchRequested, referenced from method android.support.v7.view.WindowCallbackWrapper.onSearchRequested
02-21 18:56:42.506: W/dalvikvm(15781): VFY: unable to resolve interface method 16375: Landroid/view/Window$Callback;.onSearchRequested (Landroid/view/SearchEvent;)Z
02-21 18:56:42.506: D/dalvikvm(15781): VFY: replacing opcode 0x72 at 0x0002
02-21 18:56:42.506: I/dalvikvm(15781): Could not find method android.view.Window$Callback.onWindowStartingActionMode, referenced from method android.support.v7.view.WindowCallbackWrapper.onWindowStartingActionMode
02-21 18:56:42.516: W/dalvikvm(15781): VFY: unable to resolve interface method 16379: Landroid/view/Window$Callback;.onWindowStartingActionMode (Landroid/view/ActionMode$Callback;I)Landroid/view/ActionMode;
02-21 18:56:42.516: D/dalvikvm(15781): VFY: replacing opcode 0x72 at 0x0002
02-21 18:56:42.546: I/AppCompatViewInflater(15781): app:theme is now deprecated. Please move to using android:theme instead.
02-21 18:56:42.556: I/dalvikvm(15781): Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.widget.TintTypedArray.getChangingConfigurations
02-21 18:56:42.556: W/dalvikvm(15781): VFY: unable to resolve virtual method 406: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
02-21 18:56:42.556: D/dalvikvm(15781): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:42.556: I/dalvikvm(15781): Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.widget.TintTypedArray.getType
02-21 18:56:42.556: W/dalvikvm(15781): VFY: unable to resolve virtual method 428: Landroid/content/res/TypedArray;.getType (I)I
02-21 18:56:42.556: D/dalvikvm(15781): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:42.586: D/AndroidRuntime(15781): Shutting down VM
02-21 18:56:42.596: W/dalvikvm(15781): threadid=1: thread exiting with uncaught exception (group=0x55e05b20)
02-21 18:56:42.596: I/Process(15781): Sending signal. PID: 15781 SIG: 9
02-21 18:56:42.596: D/AndroidRuntime(15781): procName from cmdline: com.eureka4.studentdictionary
02-21 18:56:42.596: E/AndroidRuntime(15781): in writeCrashedAppName, pkgName :com.eureka4.studentdictionary
02-21 18:56:42.596: D/AndroidRuntime(15781): file written successfully with content: com.eureka4.studentdictionary StringBuffer : ;com.eureka4.studentdictionary
02-21 18:56:42.596: E/AndroidRuntime(15781): FATAL EXCEPTION: main
02-21 18:56:42.596: E/AndroidRuntime(15781): Process: com.eureka4.studentdictionary, PID: 15781
02-21 18:56:42.596: E/AndroidRuntime(15781): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.eureka4.studentdictionary/com.eureka4.studentdictionary.activity.MainActivity}: android.view.InflateException: Binary XML file line #36: Error inflating class fragment
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.ActivityThread.access0(ActivityThread.java:135)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.os.Handler.dispatchMessage(Handler.java:102)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.os.Looper.loop(Looper.java:136)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.ActivityThread.main(ActivityThread.java:5021)
02-21 18:56:42.596: E/AndroidRuntime(15781): at java.lang.reflect.Method.invokeNative(Native Method)
02-21 18:56:42.596: E/AndroidRuntime(15781): at java.lang.reflect.Method.invoke(Method.java:515)
02-21 18:56:42.596: E/AndroidRuntime(15781): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827)
02-21 18:56:42.596: E/AndroidRuntime(15781): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643)
02-21 18:56:42.596: E/AndroidRuntime(15781): at dalvik.system.NativeStart.main(Native Method)
02-21 18:56:42.596: E/AndroidRuntime(15781): Caused by: android.view.InflateException: Binary XML file line #36: Error inflating class fragment
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:256)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
02-21 18:56:42.596: E/AndroidRuntime(15781): at com.eureka4.studentdictionary.activity.MainActivity.onCreate(MainActivity.java:25)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.Activity.performCreate(Activity.java:5231)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1090)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
02-21 18:56:42.596: E/AndroidRuntime(15781): ... 11 more
02-21 18:56:42.596: E/AndroidRuntime(15781): Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment com.eureka4.studentdictionary.FragmentDrawer: make sure class name exists, is public, and has an empty constructor that is public
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.Fragment.instantiate(Fragment.java:597)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.Fragment.instantiate(Fragment.java:561)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.Activity.onCreateView(Activity.java:4778)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:34)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:79)
02-21 18:56:42.596: E/AndroidRuntime(15781): at com.eureka4.studentdictionary.activity.MainActivity.onCreateView(MainActivity.java:1)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
02-21 18:56:42.596: E/AndroidRuntime(15781): ... 21 more
02-21 18:56:42.596: E/AndroidRuntime(15781): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.eureka4.studentdictionary.FragmentDrawer" on path: DexPathList[[zip file "/data/app/com.eureka4.studentdictionary-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.eureka4.studentdictionary-2, /system/lib, /system/lib/arm, /data/downloads]]
02-21 18:56:42.596: E/AndroidRuntime(15781): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
02-21 18:56:42.596: E/AndroidRuntime(15781): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
02-21 18:56:42.596: E/AndroidRuntime(15781): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
02-21 18:56:42.596: E/AndroidRuntime(15781): at android.app.Fragment.instantiate(Fragment.java:583)
02-21 18:56:42.596: E/AndroidRuntime(15781): ... 27 more
02-21 18:56:42.756: I/AppCompatViewInflater(15794): app:theme is now deprecated. Please move to using android:theme instead.
02-21 18:56:42.756: I/dalvikvm(15794): Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.widget.TintTypedArray.getChangingConfigurations
02-21 18:56:42.786: W/dalvikvm(15794): VFY: unable to resolve virtual method 406: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
02-21 18:56:42.786: D/dalvikvm(15794): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:42.786: I/dalvikvm(15794): Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.widget.TintTypedArray.getType
02-21 18:56:42.786: W/dalvikvm(15794): VFY: unable to resolve virtual method 428: Landroid/content/res/TypedArray;.getType (I)I
02-21 18:56:42.786: D/dalvikvm(15794): VFY: replacing opcode 0x6e at 0x0002
02-21 18:56:42.786: D/AndroidRuntime(15794): Shutting down VM
02-21 18:56:42.786: W/dalvikvm(15794): threadid=1: thread exiting with uncaught exception (group=0x55e05b20)
02-21 18:56:42.786: D/AndroidRuntime(15794): procName from cmdline: com.eureka4.studentdictionary
02-21 18:56:42.786: E/AndroidRuntime(15794): in writeCrashedAppName, pkgName :com.eureka4.studentdictionary
02-21 18:56:42.786: D/AndroidRuntime(15794): file written successfully with content: com.eureka4.studentdictionary StringBuffer : ;com.eureka4.studentdictionary
我正在使用 Eclipse,因为它的 CPU 要求比 Android Studio 轻。另外,我的模拟器是bluestack。
这是我的 FragmentDrawer.java
package com.eureka4.studentdictionary;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.GestureDetector;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import com.eureka4.studentdictionary.R;
public class FragmentDrawer extends Fragment {
private static String TAG = FragmentDrawer.class.getSimpleName();
private RecyclerView recyclerView;
private ActionBarDrawerToggle mDrawerToggle;
private DrawerLayout mDrawerLayout;
private NavigationDrawerAdapter adapter;
private View containerView;
private static String[] titles = null;
private FragmentDrawerListener drawerListener;
public FragmentDrawer() {
}
public void setDrawerListener(FragmentDrawerListener listener) {
this.drawerListener = listener;
}
public static List<NavDrawerItem> getData() {
List<NavDrawerItem> data = new ArrayList<>();
// preparing navigation drawer items
for (int i = 0; i < titles.length; i++) {
NavDrawerItem navItem = new NavDrawerItem();
navItem.setTitle(titles[i]);
data.add(navItem);
}
return data;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// drawer labels
titles = getActivity().getResources().getStringArray(R.array.nav_drawer_labels);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflating view layout
View layout = inflater.inflate(R.layout.fragment_navigation_drawer, container, false);
recyclerView = (RecyclerView) layout.findViewById(R.id.drawerList);
adapter = new NavigationDrawerAdapter(getActivity(), getData());
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
recyclerView.addOnItemTouchListener(new RecyclerTouchListener(getActivity(), recyclerView, new ClickListener() {
@Override
public void onClick(View view, int position) {
drawerListener.onDrawerItemSelected(view, position);
mDrawerLayout.closeDrawer(containerView);
}
@Override
public void onLongClick(View view, int position) {
}
}));
return layout;
}
public void setUp(int fragmentId, DrawerLayout drawerLayout, final Toolbar toolbar) {
containerView = getActivity().findViewById(fragmentId);
mDrawerLayout = drawerLayout;
mDrawerToggle = new ActionBarDrawerToggle(getActivity(), drawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close) {
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
getActivity().invalidateOptionsMenu();
}
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
getActivity().invalidateOptionsMenu();
}
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
super.onDrawerSlide(drawerView, slideOffset);
toolbar.setAlpha(1 - slideOffset / 2);
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
mDrawerLayout.post(new Runnable() {
@Override
public void run() {
mDrawerToggle.syncState();
}
});
}
public static interface ClickListener {
public void onClick(View view, int position);
public void onLongClick(View view, int position);
}
static class RecyclerTouchListener implements RecyclerView.OnItemTouchListener {
private GestureDetector gestureDetector;
private ClickListener clickListener;
public RecyclerTouchListener(Context context, final RecyclerView recyclerView, final ClickListener clickListener) {
this.clickListener = clickListener;
gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onSingleTapUp(MotionEvent e) {
return true;
}
@SuppressWarnings("deprecation")
@Override
public void onLongPress(MotionEvent e) {
View child = recyclerView.findChildViewUnder(e.getX(), e.getY());
if (child != null && clickListener != null) {
clickListener.onLongClick(child, recyclerView.getChildPosition(child));
}
}
});
}
@SuppressWarnings("deprecation")
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
View child = rv.findChildViewUnder(e.getX(), e.getY());
if (child != null && clickListener != null && gestureDetector.onTouchEvent(e)) {
clickListener.onClick(child, rv.getChildPosition(child));
}
return false;
}
@Override
public void onTouchEvent(RecyclerView rv, MotionEvent e) {
}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
}
}
public interface FragmentDrawerListener {
public void onDrawerItemSelected(View view, int position);
}
}
您的问题是:
02-21 18:56:42.596: E/AndroidRuntime(15781): Caused by: android.view.InflateException: Binary XML file line #36: Error inflating class fragment
...二进制 XML 文件行 #36...
确保您的布局 xml 文件正确。
看看这个:
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.eureka4.studentdictionary.FragmentDrawer"
顺便说一下,我建议您使用 GenyMotion 而不是 BlueStacks。
截至 2020 年,使用 Android SDK 附带的 Android 模拟器可能是测试应用程序的最佳方式。
确保所有导入都是正确的并仔细检查依赖项。最好是删除它们并重新添加它们。重建您的项目并重试。
可能的解决方案:
- 重建
- 清理项目,确保所有依赖项都正确并再次测试应用程序
- 在另一个模拟器上测试
- 确保您的主题是正确的
- 确保您需要的所有文件都存在
经过无数小时试图解决问题。我以某种方式设法解决了这个问题,所以我要回答我自己的问题 post,希望它也能帮助其他人。考虑到我已经将 java 类 组织到不同的包中,即 com.eureka4.studentdictionary.adapter、com.eureka4.studentdictionary.model 和 com.eureka4.studentdictionary.activity,我一定忽略了我的 xml 文件上的包路径(感谢 @xdevs23 提供的术语)。对于解决方案,我尝试折射所有 java 文件并将它们移动到我的主包 com.eureka4.studentdictionary。问题似乎已经解决了。
或者: @xdevs23 的回答也可能有帮助。
总结: 确保所有引用 java 类 的文件都添加了正确的包(但不确定在 Eclipse 中添加包是否会导致问题)。