GVKun编程网logo

java-Firebase,classmaper:在类“ myclass”上找不到“ UserTwo”的设置器/字段(java报错找不到类)

12

在本文中,您将会了解到关于java-Firebase,classmaper:在类“myclass”上找不到“UserTwo”的设置器/字段的新资讯,同时我们还将为您解释java报错找不到类的相关在本文

在本文中,您将会了解到关于java-Firebase,classmaper:在类“ myclass”上找不到“ UserTwo”的设置器/字段的新资讯,同时我们还将为您解释java报错找不到类的相关在本文中,我们将带你探索java-Firebase,classmaper:在类“ myclass”上找不到“ UserTwo”的设置器/字段的奥秘,分析java报错找不到类的特点,并给出一些关于'java.lang.NoClassDefFoundError 由 java.lang.ClassNotFoundException 引起的 Ljava/util/Base64 解析失败 未找到类“java.util.Base64”、android – com.google.firebase.provider.FirebaseInitProvider:java.lang.ClassNotFoundException:com.g、android – dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)中的类加载错误?、android – NoClassDefFoundError:com.google.firebase.FirebaseOptions的实用技巧。

本文目录一览:

java-Firebase,classmaper:在类“ myclass”上找不到“ UserTwo”的设置器/字段(java报错找不到类)

java-Firebase,classmaper:在类“ myclass”上找不到“ UserTwo”的设置器/字段(java报错找不到类)

所以firebase一直给我null指针异常,并且它在类’ChatModel’上找不到任何设置器/字段,这是我的chatModel类:

package edusolution.matrimony;

import java.util.HashMap;
import java.util.Map;

/**
 * Created by el on 8/26/16.
 */
public class ChatModel
{
    public Map<String,Object> message = new HashMap<>();
    public String foruser;
    public String foruserAnother;

    public  ChatModel()
    {

    }

    public  ChatModel(String foruser,String foruserAnother)
    {
        this.foruser = foruser;
        this.foruserAnother = foruserAnother;
    }

    public String getForuser()
    {
        return foruser;
    }

    public void setForuser(String foruser)
    {
        this.foruser = foruser;
    }

    public String getForuserAnother()
    {
        return foruserAnother;
    }

    public void setForuserAnother(String foruserAnother)
    {
        this.foruserAnother = foruserAnother;
    }

    public Map<String, Object> getMessage()
    {
        return message;
    }

    public void setMessage(Map<String,Object> message)
    {
        this.message = message;
    }

    public Map<String,Object> toMap()
    {
        HashMap<String,Object> result = new HashMap<>();
        message.put("somebody","iusedtokNow");
        result.put("UserOne",foruser);
        result.put("UserTwo",foruserAnother);
        result.put("Messages",message);
        return result;
    }
}

附言:我尝试将字段设为私有,但所有方法均无效,这是我在数据库中创建chatmodel的方式:

private void createChatModel (String Name,String currentUserName)
    {
        DatabaseReference database = FirebaseDatabase.getInstance().getReference();
        String Key = FirebaseDatabase.getInstance().getReference().child("chatRooms").push().getKey();

        ChatModel chat = new ChatModel(Name,currentUserName);
        Map<String,Object> postValues = chat.toMap();
        Map<String,Object> childUpdates = new HashMap<>();
        childUpdates.put("/chatRooms/"+Key,postValues);
        database.updateChildren(childUpdates);
    }

最后是我如何获取这些数据:

public void setupChat(final String username)
    {
        //check if chat room is already exists or not
        databaseReference.child("chatRooms").addValueEventListener(new ValueEventListener()
        {
            public void onDataChange(DataSnapshot dataSnapshot)
            {
                for(DataSnapshot s : dataSnapshot.getChildren())
                {
                    ChatModel chat = s.getValue(ChatModel.class);
                    if(chat != null )
                    {
                        Log.d("Key and hash : ",s.getKey()+" "+chat.getMessage().get(0));
                        if (chat.getForuser().equals(auth.getCurrentUser().getUid()) && chat.getForuserAnother().equals(username))
                        {
                            Log.d("Chat is ", s.getKey());
                            RoomName = new String(s.getKey());
                            ChatEnabled = true;
                        }
                        else if (chat.getForuser().equals(username) && chat.getForuserAnother().equals(auth.getCurrentUser().getUid()))
                        {
                            Log.d("chat is also ", s.getKey());
                            RoomName = new String(s.getKey());
                            ChatEnabled = true;
                        }
                        else
                        {
                            Log.d("No chat : ", "creating chat");
                        }
                    }
                }
            }

            public void onCancelled(DatabaseError databaseError)
            {
                Toast.makeText(getApplicationContext(),"Unable to retrieve data",Toast.LENGTH_LONG).show();
            }
        });
    }

示例数据,保存在firebasedatabase中,图片:Saved data image example

最后错误,我得到eveytime:

08-28 18:28:51.005 31762-31762/edusolution.matrimony W/ClassMapper: No setter/field for UserTwo found on class edusolution.matrimony.ChatModel
08-28 18:28:51.005 31762-31762/edusolution.matrimony W/ClassMapper: No setter/field for Messages found on class edusolution.matrimony.ChatModel
08-28 18:28:51.005 31762-31762/edusolution.matrimony W/ClassMapper: No setter/field for UserOne found on class edusolution.matrimony.ChatModel
08-28 18:28:51.005 31762-31762/edusolution.matrimony D/Key and hash :: -KQGYLHb2IQ34AHkzx5G null
08-28 18:28:51.005 31762-31762/edusolution.matrimony D/AndroidRuntime: Shutting down VM
08-28 18:28:51.005 31762-31762/edusolution.matrimony W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x41919700)
08-28 18:28:51.012 31762-31762/edusolution.matrimony E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NullPointerExceptio
    at edusolution.matrimony.Chat$1.onDataChange(Chat.java:70)
    at com.google.android.gms.internal.zzaie.zza(UnkNown Source)
    at com.google.android.gms.internal.zzaje.zzcta(UnkNown Source)
    at com.google.android.gms.internal.zzajh$1.run(UnkNown Source)
    at android.os.Handler.handleCallback(Handler.java:730)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:5103)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:525)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
    at dalvik.system.NativeStart.main(Native Method)

解决方法:

POJO类与数据库的结构不同.

将您的ChatModel类字段更改为

public class ChatModel {
    public Map<String,Object> Messages = new HashMap<>();
    public String UserOne;
    public String UserTwo;

    // constructor
    // setter and getter
}

'java.lang.NoClassDefFoundError 由 java.lang.ClassNotFoundException 引起的 Ljava/util/Base64 解析失败 未找到类“java.util.Base64”

'java.lang.NoClassDefFoundError 由 java.lang.ClassNotFoundException 引起的 Ljava/util/Base64 解析失败 未找到类“java.util.Base64”

如何解决''java.lang.NoClassDefFoundError 由 java.lang.ClassNotFoundException 引起的 Ljava/util/Base64 解析失败 未找到类“java.util.Base64”?

我收到此错误,我已阅读该错误以解决它我必须将 import java.util.Base64 替换为 import android.util.Base64 但在我的整个项目中我只发现 Base68 result = Base64.getEncoder().encodetoString(macData); 的唯一用法 我该如何解决?而且我不能用 android.util.Base.64 替换 java.util.Base64 因为这行代码在后端

解决方法

这很不幸 - 这意味着您正在使用某个库,而那个库正在尝试使用 /i。 Android 选择了 Java 库,就像 android 发布时一样,现在已经是很久以前的事了。从那以后它们就没有真正更新过。 (那个 oracle v google 法庭案件可能没有帮助……)

java.util.Base64 已添加到 https://forge.autodesk.com/en/docs/design-automation/v3/reference/cmdLine/cmdLine-inventor/(有关此信息,请参阅 javadoc 中的“since”行;任何“1.6”或以下,或者如果没有“since”行,肯定可用在 android 上。其他东西通常不是)。 java 8 现在已经 7 岁了,因此不是专门为 android 设计的库越来越有可能开始使用这些非 android 库调用。

检查堆栈跟踪,您会找到正在执行此操作的库。恐怕除了停止使用这个库之外别无他法。您可以尝试在您的应用程序中粘贴 juBase64 impl,但这会相对棘手,因为这可能涉及一些法律问题,因此,要么没有人这样做,要么如果他们这样做,他们可能不会宣传如何。

您可以要求这个库使用第三方库来做 base64 工作,但他们可能不想这样做,这可能不是库无法在 android 上运行的唯一问题。

如果 android 变体是一个替代品,你可以重写这个库的类文件,但这也是一个有点笨拙、笨拙的概念,并不完全困难,但因为这不是一件正常的事情,而且通常积极不喜欢,我认为您无法轻松找到有关如何操作的文档。

因此,建议:尝试寻找另一个图书馆。

android – com.google.firebase.provider.FirebaseInitProvider:java.lang.ClassNotFoundException:com.g

android – com.google.firebase.provider.FirebaseInitProvider:java.lang.ClassNotFoundException:com.g

在KitKat和更低版本上接收此错误在Lollipop及以上版本上完美运行

我已将所有必需的jar包括在gradle和Firebase json文件中以接收GCM.

我的应用程序gradle

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

android {
    compileSdkVersion 23
    buildToolsversion "24.0.0"
    defaultConfig {
        applicationId ""
        minSdkVersion 13
        targetSdkVersion 23
        versionCode 6
        versionName "1.6"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    defaultConfig {
        multiDexEnabled true
    }
    useLibrary 'org.apache.http.legacy'
}


dependencies {
    compile filetree(dir: 'libs', include: ['*.jar'])

    compile project(':httpmime-4.2.5')
    compile project(':universal-image-loader-1.9.3')
    compile project(':universal-image-loader-1.9.3')
    compile group: 'org.apache.httpcomponents', name: 'httpclient-android', version: '4.3.3'

    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.loopj.android:android-async-http:1.4.9'
    compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'

    compile 'com.android.support:design:23.4.0'
    compile 'com.google.android.gms:play-services:9.0.0'
    testCompile 'junit:junit:4.12'
}

解决方法:

此依赖项包括所有Google Play服务API的代码:

compile 'com.google.android.gms:play-services:9.0.0'

这很可能导致您的应用超过65K方法参考限制,要求您使用Multidex在Lollipop前设备上运行.

你有两个选择.您只能包含实际需要的Play服务API.标题为选择性地将API编译到可执行文件中的部分中的list is here.或者您可以在instructions here之后启用Multidex.尽管build.gradle文件中的multiDexEnabled为true,但这只是配置Multidex所需的三个步骤之一.您还需要将库包含为依赖项并更新清单.

如果您使用的是Android Studio 2.2.2,则可以使用APK Analyzer查看应用中有多少方法引用.从菜单栏中选择Build>分析APK. APK位于文件夹… / app / build / outputs / apk中.选择APK文件,然后在结果窗口中单击classes.dex以查看方法和方法引用的数量.

android – dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)中的类加载错误?

android – dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)中的类加载错误?

无法运行以下项目,项目中没有错误.我已经多次运行该项目了.请有人帮我解决问题.

AndroidManifest.xml中:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.extremefitness.org"
    android:versionCode="1"
    android:versionName="1.0" >

    <supports-screens
        android:anyDensity="false"
        android:largeScreens="true"
        android:normalScreens="true"
        android:smallScreens="true"
        android:xlargeScreens="true" />

    <uses-permission android:name="android.permission.INTERNET" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
    </uses-permission>
    <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
    <uses-permission android:name="android.permission.CLEAR_APP_CACHE" >
    </uses-permission>
    <uses-permission android:name="android.permission.disABLE_KEyguard" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".Tabbaractivity"
            android:windowSoftInputMode="adjustPan|adjustResize" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".HomeActivity"
            android:screenorientation="portrait"
            android:windowSoftInputMode="adjustPan|adjustResize" >
        </activity>
        <activity
            android:name="com.extremefitness.views.LoginActivity"
            android:noHistory="true"
            android:screenorientation="portrait"
            android:windowSoftInputMode="adjustPan|adjustResize" >
        </activity>
        <activity
            android:name="com.extremefitness.views.Registeractivity"
            android:noHistory="true"
            android:screenorientation="portrait"
            android:windowSoftInputMode="adjustPan|adjustResize" >
        </activity>
        <activity
            android:name="com.extremefitness.views.Profiletabactivity"
            android:screenorientation="portrait"
            android:windowSoftInputMode="adjustPan|adjustResize" >
        </activity>
        <activity
            android:name="com.extremefitness.views.RandomWorkouttabactivity"
            android:screenorientation="portrait"
            android:windowSoftInputMode="adjustPan|adjustResize" >
        </activity>
        <activity
            android:name="com.extremefitness.views.Tracktabactivity"
            android:screenorientation="portrait"
            android:windowSoftInputMode="adjustPan|adjustResize" >
        </activity>
        <activity
            android:name="com.extremefitness.views.Workouttabactivity"
            android:screenorientation="portrait"
            android:windowSoftInputMode="adjustPan|adjustResize" >
        </activity>
        <activity
            android:name="com.extremefitness.views.StatsActivity"
            android:screenorientation="portrait"
            android:windowSoftInputMode="adjustPan|adjustResize" >
        </activity>
        <activity
            android:name="com.extremefitness.views.ExerciseActivity"
            android:screenorientation="portrait"
            android:windowSoftInputMode="adjustPan|adjustResize" >
        </activity>
        <activity
            android:name="com.extremefitness.views.CustomDialog"
            android:screenorientation="portrait"
            android:windowSoftInputMode="adjustPan|adjustResize" >
        </activity>
        <activity
            android:name="com.extremefitness.views.WorkoutDescription"
            android:noHistory="true"
            android:screenorientation="portrait"
            android:windowSoftInputMode="adjustPan|adjustResize" >
        </activity>
        <activity
            android:name="com.extremefitness.views.ExerciseDescription"
            android:screenorientation="portrait"
            android:windowSoftInputMode="adjustPan|adjustResize" >
        </activity>
        <activity
            android:name="com.extremefitness.views.Settings"
            android:screenorientation="portrait"
            android:windowSoftInputMode="adjustPan|adjustResize" >
        </activity>

        <activity
            android:name="com.extremefitness.views.RandomWorkoutResponse"
            android:screenorientation="portrait"
            android:windowSoftInputMode="adjustPan|adjustResize" >
        </activity>
        <activity
            android:name=".FBActivity"
            android:screenorientation="portrait"
            android:windowSoftInputMode="adjustPan|adjustResize" >
        </activity>
        <activity
            android:name=".Twitteractivity"
            android:screenorientation="portrait"
            android:windowSoftInputMode="adjustPan|adjustResize" >
        </activity>
        <activity
            android:name="com.extremefitness.views.VideoDialog"
            android:configChanges="orientation|screenSize|keyboardHidden"
            android:screenorientation="nosensor" >
            <Meta-data
                android:name="@string/minVersion"
                android:value="8" />
            <Meta-data
                android:name="@string/isLaunchableActivity"
                android:value="true" />
        </activity>
        <activity
            android:name="com.extremefitness.views.WorktVideoDialog"
            android:configChanges="orientation|screenSize|keyboardHidden"
            android:screenorientation="nosensor" >
            <Meta-data
                android:name="@string/minVersion"
                android:value="8" />
            <Meta-data
                android:name="@string/isLaunchableActivity"
                android:value="true" />
        </activity>
    </application>

</manifest>

错误的日志:

04-26 14:45:08.211: E/AndroidRuntime(2179): FATAL EXCEPTION: main
04-26 14:45:08.211: E/AndroidRuntime(2179): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.extremefitness.org/com.extremefitness.org.Tabbaractivity}: java.lang.classNotFoundException: com.extremefitness.org.Tabbaractivity
04-26 14:45:08.211: E/AndroidRuntime(2179):     at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:1894)
04-26 14:45:08.211: E/AndroidRuntime(2179):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)
04-26 14:45:08.211: E/AndroidRuntime(2179):     at android.app.ActivityThread.access$600(ActivityThread.java:128)
04-26 14:45:08.211: E/AndroidRuntime(2179):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)
04-26 14:45:08.211: E/AndroidRuntime(2179):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-26 14:45:08.211: E/AndroidRuntime(2179):     at android.os.Looper.loop(Looper.java:137)
04-26 14:45:08.211: E/AndroidRuntime(2179):     at android.app.ActivityThread.main(ActivityThread.java:4517)
04-26 14:45:08.211: E/AndroidRuntime(2179):     at java.lang.reflect.Method.invokeNative(Native Method)
04-26 14:45:08.211: E/AndroidRuntime(2179):     at java.lang.reflect.Method.invoke(Method.java:511)
04-26 14:45:08.211: E/AndroidRuntime(2179):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
04-26 14:45:08.211: E/AndroidRuntime(2179):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
04-26 14:45:08.211: E/AndroidRuntime(2179):     at dalvik.system.NativeStart.main(Native Method)
04-26 14:45:08.211: E/AndroidRuntime(2179): Caused by: java.lang.classNotFoundException: com.extremefitness.org.Tabbaractivity
04-26 14:45:08.211: E/AndroidRuntime(2179):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
04-26 14:45:08.211: E/AndroidRuntime(2179):     at java.lang.classLoader.loadClass(ClassLoader.java:501)
04-26 14:45:08.211: E/AndroidRuntime(2179):     at java.lang.classLoader.loadClass(ClassLoader.java:461)
04-26 14:45:08.211: E/AndroidRuntime(2179):     at android.app.Instrumentation.newActivity(Instrumentation.java:1027)
04-26 14:45:08.211: E/AndroidRuntime(2179):     at android.app.ActivityThread.performlaunchActivity(ActivityThread.java:1885)
04-26 14:45:08.211: E/AndroidRuntime(2179):     ... 11 more

解决方法

我遇到同样的问题,检查构建路径,你的第三个罐子没有在你的apk文件中. 1.右键单击您的项目,选择“构建路径” – > “配置构建路径…”. 2.在“订购和导出”选项卡中,选中“Android私有库”选项. 希望工作.

android – NoClassDefFoundError:com.google.firebase.FirebaseOptions

android – NoClassDefFoundError:com.google.firebase.FirebaseOptions

我继续得到我正在使用的其他测试设备(4.4.2)上的NoClassDefFoundError.但在我的测试设备( Android 5.1)上工作正常.

我尝试了我已经搜索的解决方案,没有什么似乎有效.

我正在使用Firebase实时数据库.有人可以帮忙吗?

这是错误日志:

06-03 01:36:29.607 2655-2655/mobapps.mypersonal.biz.grouptracker E/dalvikvm: Could not find class 'com.google.firebase.FirebaSEOptions',referenced from method com.google.firebase.FirebaseApp.<init> 06-03 01:36:29.617 2655-2655/mobapps.mypersonal.biz.grouptracker E/dalvikvm: Could not find class 'com.google.firebase.FirebaseApp$zzb',referenced from method com.google.firebase.FirebaseApp.zzaJ 06-03 01:36:29.621 2655-2655/mobapps.mypersonal.biz.grouptracker E/dalvikvm: Could not find class 'com.google.firebase.FirebaseApiNotAvailableException',referenced from method com.google.firebase.FirebaseApp.getToken 06-03 01:36:29.629 2655-2655/mobapps.mypersonal.biz.grouptracker E/dalvikvm: Could not find class 'com.google.firebase.FirebaseApp$zza',referenced from method com.google.firebase.FirebaseApp.zza 06-03 01:36:29.639 2655-2655/mobapps.mypersonal.biz.grouptracker E/AndroidRuntime: FATAL EXCEPTION: main
    Process: mobapps.mypersonal.biz.grouptracker,PID: 2655
    java.lang.NoClassDefFoundError: com.google.firebase.FirebaSEOptions
        at com.google.firebase.FirebaseApp.zzbu(UnkNown Source)
        at com.google.firebase.provider.FirebaseInitProvider.onCreate(UnkNown Source)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1656)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1627)
        at com.google.firebase.provider.FirebaseInitProvider.attachInfo(UnkNown Source)
        at android.app.ActivityThread.installProvider(ActivityThread.java:5079)
        at android.app.ActivityThread.installContentProviders(ActivityThread.java:4653)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4593)
        at android.app.ActivityThread.access$1500(ActivityThread.java:151)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1402)
        at android.os.Handler.dispatchMessage(Handler.java:110)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:5363)
        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:828)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644)
        at dalvik.system.NativeStart.main(Native Method)

解决方法

这是什么解决了我的问题:

>将编译’com.android.support:multidex:1.0.1’添加到
应用程序/的build.gradle.
>将android:name =“android.support.multidex.MultiDexApplication”添加到AndroidManifest.xml中的应用程序标签.

如果您使用自定义应用程序类,请跳过AndroidManifest.xml,并使您的Application类扩展MultiDexApplication而不是应用程序.

我们今天的关于java-Firebase,classmaper:在类“ myclass”上找不到“ UserTwo”的设置器/字段java报错找不到类的分享就到这里,谢谢您的阅读,如果想了解更多关于'java.lang.NoClassDefFoundError 由 java.lang.ClassNotFoundException 引起的 Ljava/util/Base64 解析失败 未找到类“java.util.Base64”、android – com.google.firebase.provider.FirebaseInitProvider:java.lang.ClassNotFoundException:com.g、android – dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)中的类加载错误?、android – NoClassDefFoundError:com.google.firebase.FirebaseOptions的相关信息,可以在本站进行搜索。

本文标签: