标签: classcastexception

类扩展Application抛出ClassNotFoundException

我有一个扩展应用程序类的类,有时在我的开发人员控制台中,我看到一个错误说 ClassNotFoundException

java.lang.RuntimeException: Unable to instantiate application ecm2.android.ActiveStore: java.lang.ClassNotFoundException: ecm2.android.ActiveStore
at android.app.LoadedApk.makeApplication(LoadedApk.java:501)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4221)
at android.app.ActivityThread.access$1400(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4918)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: ecm2.android.ActiveStore
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
at android.app.Instrumentation.newApplication(Instrumentation.java:982)
at android.app.LoadedApk.makeApplication(LoadedApk.java:496)
... 11 more
Run Code Online (Sandbox Code Playgroud)

这是我在清单中声明它的方式

<application
    android:name=".ActiveStore"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar" >
Run Code Online (Sandbox Code Playgroud)

ActiveStore 只是一个包含应用程序上下文来启动和取消alrams的类,为什么我会收到此错误?

更新:

我仍然在我的开发者页面中不时看到这个错误,即使在放入.类名前面.它似乎只发生在更新或新安装上

android classcastexception

9
推荐指数
1
解决办法
1471
查看次数

致命异常:无法将字符串强制转换为Spannable

除少数设备外,我的应用程序工作得很好.在一台这样的设备上,我在我的一项活动中获得了致命的异常.错误是java.lang.ClassCastException:java.lang.String无法强制转换为android.text.Spannable ...... 在android.widget.TextView.setEnabled(TextView.java:1432)

堆栈跟踪

05-02 09:18:19.917: E/AndroidRuntime(20587): FATAL EXCEPTION: main
05-02 09:18:19.917: E/AndroidRuntime(20587): java.lang.ClassCastException: java.lang.String cannot be cast to android.text.Spannable
05-02 09:18:19.917: E/AndroidRuntime(20587):    at android.widget.TextView.setEnabled(TextView.java:1432)
05-02 09:18:19.917: E/AndroidRuntime(20587):    at com.myapp.android.menu.LoginFragment.checkIfAnyFieldIsEmpty(LoginFragment.java:512)
05-02 09:18:19.917: E/AndroidRuntime(20587):    at com.myapp.android.menu.LoginFragment.onCreateView(LoginFragment.java:183)
05-02 09:18:19.917: E/AndroidRuntime(20587):    at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
05-02 09:18:19.917: E/AndroidRuntime(20587):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911)
05-02 09:18:19.917: E/AndroidRuntime(20587):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
05-02 09:18:19.917: E/AndroidRuntime(20587):    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
05-02 09:18:19.917: E/AndroidRuntime(20587):    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
05-02 09:18:19.917: E/AndroidRuntime(20587):    at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:429)
05-02 09:18:19.917: E/AndroidRuntime(20587):    at android.os.Handler.handleCallback(Handler.java:615)
05-02 09:18:19.917: E/AndroidRuntime(20587):    at android.os.Handler.dispatchMessage(Handler.java:92)
05-02 09:18:19.917: E/AndroidRuntime(20587):    at …
Run Code Online (Sandbox Code Playgroud)

crash android classcastexception

9
推荐指数
2
解决办法
5562
查看次数

尝试在自定义对象数组上执行readParcelable时出现ClassCastException

我正在尝试实现Parcelable而不是Serializble,因为它应该更高效.从我的MainActivity我想将Message对象传递给另一个activity,我的类Message包含其他类.如果我越过这一个错误,我确信我会遇到更多的错误,但是现在当我尝试运行我的应用程序时,我得到了

这是我的Message-class:

import java.util.ArrayList;

import android.os.Parcel;
import android.os.Parcelable;

public class Message implements Parcelable {

    int id;
    int space_id;
    String text;
    String html;
    String created_at;
    int[] comments;
    boolean is_liked;
    int[] liked_by;
    int[] starred_by;
    boolean is_starred;
    boolean is_followed;
    int[] followed_by;
    ArrayList<AttachmentsData> attachments;
    String url;
    int[] tags;
    boolean is_system;

    public User created_by;
    public Permissions persmissions;
    public Embed embed;
    public Tokens[] tokens;


    /** Parcelable **/
    public Message(Parcel in) {
        readFromParcel(in);
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, …
Run Code Online (Sandbox Code Playgroud)

arrays android classcastexception parcelable

9
推荐指数
1
解决办法
9390
查看次数

ClassCastException:接口akka.actor.Scheduler不能从类akka.actor.LightArrayRevolverScheduler分配

我试图在几个月的条件下运行我已成功运行的各种条件.我正在使用akka-actor_2.11 2.3.4与运行Java 7的Java应用程序中的scala-library 2.11.7.就像我说的,相同的代码已经工作了几个月.在最近的情况下,我得到以下内容:

java.lang.ClassCastException: interface akka.actor.Scheduler is not assignable from class akka.actor.LightArrayRevolverScheduler
at akka.actor.ReflectiveDynamicAccess$$anonfun$getClassFor$1.apply(DynamicAccess.scala:69)
at akka.actor.ReflectiveDynamicAccess$$anonfun$getClassFor$1.apply(DynamicAccess.scala:66)
at scala.util.Try$.apply(Try.scala:192)
at akka.actor.ReflectiveDynamicAccess.getClassFor(DynamicAccess.scala:66)
at akka.actor.ReflectiveDynamicAccess.createInstanceFor(DynamicAccess.scala:84)
at akka.actor.ActorSystemImpl.createScheduler(ActorSystem.scala:677)
at akka.actor.ActorSystemImpl.<init>(ActorSystem.scala:576)
at akka.actor.ActorSystem$.apply(ActorSystem.scala:142)
at akka.actor.ActorSystem$.apply(ActorSystem.scala:109)
at akka.actor.ActorSystem$.create(ActorSystem.scala:57)
at akka.actor.ActorSystem.create(ActorSystem.scala)
Run Code Online (Sandbox Code Playgroud)

有问题的电话是: system= ActorSystem.create("MyActorSystem");

此调用发生在类的构造函数中,该类通过反射ala动态加载getConstructor(...).newInstance(...).

当我写的分布式计算环境的用户基于尝试执行动态实例化动态实例化作业的作业(2级反射实例化)时,就出现了这个问题.基本上,像这个伪调用列表:

reflectivelyCreate(job)
job.reflectivelyCreate(job2)
job2.instantiateActorSystem()
<fail>
Run Code Online (Sandbox Code Playgroud)

如果我以下列方式运行完全相同的代码:

reflectivelyCreate(job2)
job2.instantiateActorSystem()
<success>
Run Code Online (Sandbox Code Playgroud)

一切正常.

我的问题是,是否在Java中幕后发生了一些有状态的类加载器相关魔法,以至于Akka对其状态的假设是不正确的.我发现的类似问题(Akka ActorSystem创建问题)似乎与线程/ scala repl调用有关,但我的代码是单线程的,并且在上面的成功和失败情况下都以相同的方式调用.到目前为止,只有在调用堆栈深度不同的情况下才会发生有问题的调用.

我很感激来自akka大师的任何意见!

java classcastexception akka

9
推荐指数
1
解决办法
1006
查看次数

java.lang.ClassCastException:android.support.v7.widget.ActivityChooserView $ InnerLayout无法强制转换为android.support.v7.widget.LinearLayoutCompat

从LinearLayout切换到ConstraintLayout会抛出此错误

java.lang.ClassCastException: android.support.v7.widget.ActivityChooserView$InnerLayout cannot be cast to android.support.v7.widget.LinearLayoutCompat                                                                                                                                             
Run Code Online (Sandbox Code Playgroud)

当我尝试给onCreateOptionsMenu()我的片段中的菜单充气时发生错误.

我膨胀的菜单: -

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">   
    <item
        android:id="@+id/action_share"
        app:showAsAction="always"
        android:orderInCategory="101"
        android:icon="@android:drawable/ic_menu_share"
        android:title="@string/action_share"
        app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
        />
</menu>
Run Code Online (Sandbox Code Playgroud)

我的 onCreateOptionsMenu(..)

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {     
    inflater.inflate(R.menu.customerdetail, menu);      
    MenuItem menuItem = menu.findItem(R.id.action_share);
    mShareActionProvider = (ShareActionProvider) 
    MenuItemCompat.getActionProvider(menuItem);         
 // If i comment out this whole part everything is fine !!
 }
Run Code Online (Sandbox Code Playgroud)

编辑: - 日志的ScreenShot: -

在此输入图像描述

更新: - 添加app:actionProviderClass="android.support.v7.widget.ShareActionProvider"项目会导致错误.

正如ShaneCoder建议下降到27.0.2/更改以LinearLayout消除错误但我想知道

为什么27.1.0在运行Class时会在运行时抛出这样的错误 …

android classcastexception android-constraintlayout

9
推荐指数
1
解决办法
1745
查看次数

关于LAZY加载的Hibernate 4 ClassCastException,而EAGER正常工作

我为地理区域(如大洲,国家,州等)提供了以下JOINED继承根实体:

@Entity
@Table(name = "GeoAreas")
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class GeoArea implements Serializable
{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column
    protected Integer id;

    @Column
    protected String name;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "parent_id", referencedColumnName = "id")
    protected GeoArea parent;

    ...
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,地理区域有一个简单的自动ID,如PK,名称以及与其父级的关系(自引用).请注意parent映射为的地理区域关系FetchType.LAZY.在数据库中,FK parent_id正在NOT NULL使关系成为可选的.默认为@ManyToOneis optional = true,因此映射似乎是正确的.

子类定义了其他属性,实际上并不重要.数据库中的数据正确链接,因为可以通过JPQL列出地理区域而没有问题(FetchType.EAGER映射略有不同parent,请参见文本结尾):

竞技场列表与EAGER加载

每一行都是以下的实例:

public class ArenaListViewLine
{
    private final Integer arenaId;
    private final String arenaName;
    private final String arenaLabel;

    private …
Run Code Online (Sandbox Code Playgroud)

hibernate jpa lazy-loading classcastexception hibernate-4.x

8
推荐指数
1
解决办法
7796
查看次数

在Android中动态加载类时ClassCastException

我有一个线程,根据系统的具体实现,为所需的资源加载不同的类.我的实现在Android上,我有一个类,它返回我的实现所需的特定类.我似乎能够很好地加载类,但是当我尝试将它分配给主线程中的对象时,它给了我一个ClassCastException.以下是片段:

在我的主线程中,我做:

    try {
        grammarProcessor = config.loadObject(GrammarProcessor.class);
Run Code Online (Sandbox Code Playgroud)

这给了我这个堆栈跟踪:

    E/AndroidRuntime(6682): FATAL EXCEPTION: JVoiceXmlMain
    E/AndroidRuntime(6682): java.lang.ClassCastException: org.jvoicexml.android.JVoiceXmlGrammarProcessor
    E/AndroidRuntime(6682):     at org.jvoicexml.JVoiceXmlMain.run(JVoiceXmlMain.java:321)
Run Code Online (Sandbox Code Playgroud)

GrammarProcessor是一个接口,JVoiceXmlGrammarProcessor是我加载和实现该接口的类.加载代码如下:

else if(baseClass == GrammarProcessor.class){
        String packageName = "org.jvoicexml.android";
        String className = "org.jvoicexml.android.JVoiceXmlGrammarProcessor";           
        String apkName = null;
        Class<?> handler = null;
        T b = null;

        try {
            PackageManager manager = callManagerContext.getPackageManager();
            ApplicationInfo info= manager.getApplicationInfo(packageName, 0);
            apkName= info.sourceDir;
        } catch (NameNotFoundException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
            return null;
        }
        PathClassLoader myClassLoader =
            new dalvik.system.PathClassLoader(
                    apkName,
                    ClassLoader.getSystemClassLoader());
        try …
Run Code Online (Sandbox Code Playgroud)

android dynamic classloader classcastexception

8
推荐指数
1
解决办法
2635
查看次数

迭代参数化List(在原始List类型赋值之后)

语言:Java
编译器版本:1.6

在下面的代码中,我尝试执行以下操作:

  1. 创建一个 List<String>
  2. 添加一个 String
  3. 分配List<String>到原始List
  4. 创建一个 List<Integer>
  5. 将原始分配ListList<Integer>
  6. 添加一个 Integer
  7. 使用get()@index 1和2 检索值并打印它们.

所有语句都在编译(带警告)并运行正常.

但是,如果我尝试循环List<Integer>使用for循环,我会得到一个ClassCastException.我只是想知道为什么它允许我使用list.get()方法但不允许我迭代它?

输出:( 如果我使用未注释的for循环运行)abcd 200

Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot  be cast to java.lang.Integer
        at genericsamples.CheckRawTypeAdd.main(CheckRawTypeAdd.java:26)
Run Code Online (Sandbox Code Playgroud)

这是我的代码

import java.util.*;
import java.io.*;
class CheckRawTypeAdd
{
    public static void main(String[] sr)
    {   
        List<String> list_str = new ArrayList<String>();
        list_str.add("abcd");
        List<Integer> list_int = new ArrayList<Integer>();  
        List list_raw; 
        list_raw=list_str;
        list_int=list_raw;
        list_int.add(200); …
Run Code Online (Sandbox Code Playgroud)

java generics foreach classcastexception

8
推荐指数
1
解决办法
1349
查看次数

MyClass无法强制转换为java.lang.Comparable:java.lang.ClassCastException

我正在做一个java项目,我遇到了这个问题,不知道如何解决它.

我项目中的类(简化):

public class Item {

    private String itemID;
    private Integer price;

    public Integer getPrice() {

        return this.price;

    }

}

public class Store {

    private String storeID;
    private String address;

}

public class Stock {

    private Item item;
    private Store store;
    private Integer itemCount;

    public Integer getInventoryValue() {

        return this.item.getPrice() * this.itemCount;

    }  
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试对ArrayList股票进行排序,以便创建另一个名为的类CompareByValue

public class CompareByValue implements Comparator<Stock> {

    @Override
    public int compare(Stock stock1, Stock stock2) {

        return (stock1.getInventoryValue() - stock2.getInventoryValue());

    }
Run Code Online (Sandbox Code Playgroud)

}

当我尝试运行该程序时,它会给出错误:

线程"main"中的异常java.lang.ClassCastException:Stock无法强制转换为java.lang.Comparable …

java sorting exception comparable classcastexception

8
推荐指数
1
解决办法
5万
查看次数

为什么在转换为不相关的接口时会编译?

interface Printable {}
class BlackInk {}

public class Main {
    public static void main(String args[]) {
        Printable printable = null;
        BlackInk blackInk = new BlackInk();
        printable = (Printable)blackInk;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果编译并运行上述代码,则结果为ClassCastException printable = (Printable)blackInk;.但是,如果将Printable更改为类,则不会编译,因为blackInk无法强制转换为Printable.当Printable是一个接口时,为什么要编译?

java interface classcastexception

8
推荐指数
2
解决办法
1219
查看次数