Java 这个错误是什么意思?

标签 java android sdl

这与之前的问题类似,但我想确保我确实知道此错误的含义:

01-17 23:55:23.828: I/dalvikvm(31248): Could not find method com.company.game.GameActivity.onActivityResultGameActivity, referenced from method com.company.game.GameActivity.onActivityResult
01-17 23:55:23.828: W/dalvikvm(31248): VFY: unable to resolve direct method 1973: Lcom/company/game/GameActivity;.onActivityResultGameActivity (IILandroid/content/Intent;)V
01-17 23:55:23.828: D/dalvikvm(31248): VFY: replacing opcode 0x70 at 0x0007
01-17 23:55:23.828: I/dalvikvm(31248): Could not find method com.company.game.GameActivity.onCreateGameActivity, referenced from method com.company.game.GameActivity.onCreate
01-17 23:55:23.828: W/dalvikvm(31248): VFY: unable to resolve direct method 1979: Lcom/company/game/GameActivity;.onCreateGameActivity (Landroid/os/Bundle;)V
01-17 23:55:23.828: D/dalvikvm(31248): VFY: replacing opcode 0x70 at 0x0000
01-17 23:55:23.828: I/dalvikvm(31248): Could not find method com.company.game.GameActivity.onCreateDialogGameActivity, referenced from method com.company.game.GameActivity.onCreateDialog
01-17 23:55:23.828: W/dalvikvm(31248): VFY: unable to resolve direct method 1977: Lcom/company/game/GameActivity;.onCreateDialogGameActivity (I)Landroid/app/Dialog;
01-17 23:55:23.828: D/dalvikvm(31248): VFY: replacing opcode 0x70 at 0x0008
01-17 23:55:23.828: I/dalvikvm(31248): Could not find method com.company.game.GameActivity.onCreateDialogGameActivity, referenced from method com.company.game.GameActivity.onCreateDialog
01-17 23:55:23.828: W/dalvikvm(31248): VFY: unable to resolve direct method 1978: Lcom/company/game/GameActivity;.onCreateDialogGameActivity (ILandroid/os/Bundle;)Landroid/app/Dialog;
01-17 23:55:23.828: D/dalvikvm(31248): VFY: replacing opcode 0x70 at 0x0008
01-17 23:55:23.828: I/dalvikvm(31248): Could not find method com.company.game.GameActivity.onDestroyGameActivity, referenced from method com.company.game.GameActivity.onDestroy
01-17 23:55:23.828: W/dalvikvm(31248): VFY: unable to resolve direct method 1981: Lcom/company/game/GameActivity;.onDestroyGameActivity ()V
01-17 23:55:23.828: D/dalvikvm(31248): VFY: replacing opcode 0x70 at 0x0000
01-17 23:55:23.835: I/dalvikvm(31248): Could not find method com.company.game.GameActivity.onPauseGameActivity, referenced from method com.company.game.GameActivity.onPause
01-17 23:55:23.835: W/dalvikvm(31248): VFY: unable to resolve direct method 1983: Lcom/company/game/GameActivity;.onPauseGameActivity ()V
01-17 23:55:23.835: D/dalvikvm(31248): VFY: replacing opcode 0x70 at 0x0000
01-17 23:55:23.835: I/dalvikvm(31248): Could not find method com.company.game.GameActivity.onResumeGameActivity, referenced from method com.company.game.GameActivity.onResume
01-17 23:55:23.835: W/dalvikvm(31248): VFY: unable to resolve direct method 1985: Lcom/company/game/GameActivity;.onResumeGameActivity ()V
01-17 23:55:23.835: D/dalvikvm(31248): VFY: replacing opcode 0x70 at 0x0000
01-17 23:55:23.835: I/dalvikvm(31248): Could not find method com.company.game.GameActivity.onStartGameActivity, referenced from method com.company.game.GameActivity.onStart
01-17 23:55:23.835: W/dalvikvm(31248): VFY: unable to resolve direct method 1987: Lcom/company/game/GameActivity;.onStartGameActivity ()V
01-17 23:55:23.835: D/dalvikvm(31248): VFY: replacing opcode 0x70 at 0x0000
01-17 23:55:23.835: I/dalvikvm(31248): Could not find method com.company.game.GameActivity.onStopGameActivity, referenced from method com.company.game.GameActivity.onStop
01-17 23:55:23.835: W/dalvikvm(31248): VFY: unable to resolve direct method 1989: Lcom/company/game/GameActivity;.onStopGameActivity ()V
01-17 23:55:23.835: D/dalvikvm(31248): VFY: replacing opcode 0x70 at 0x0000
01-17 23:55:23.835: D/dalvikvm(31248): Trying to load lib /data/data/com.company.game/lib/libSDL2.so 0x415e7228
01-17 23:55:23.835: D/dalvikvm(31248): Added shared lib /data/data/com.company.game/lib/libSDL2.so 0x415e7228
01-17 23:55:23.835: D/dalvikvm(31248): Trying to load lib /data/data/com.company.game/lib/libSDL2_ttf.so 0x415e7228
01-17 23:55:23.843: D/dalvikvm(31248): Added shared lib /data/data/com.company.game/lib/libSDL2_ttf.so 0x415e7228
01-17 23:55:23.843: D/dalvikvm(31248): No JNI_OnLoad found in /data/data/com.company.game/lib/libSDL2_ttf.so 0x415e7228, skipping init
01-17 23:55:23.843: D/dalvikvm(31248): Trying to load lib /data/data/com.company.game/lib/libmain.so 0x415e7228
01-17 23:55:23.843: D/dalvikvm(31248): Added shared lib /data/data/com.company.game/lib/libmain.so 0x415e7228
01-17 23:55:23.843: D/dalvikvm(31248): No JNI_OnLoad found in /data/data/com.company.game/lib/libmain.so 0x415e7228, skipping init
01-17 23:55:23.859: D/AndroidRuntime(31248): Shutting down VM
01-17 23:55:23.859: W/dalvikvm(31248): threadid=1: thread exiting with uncaught exception (group=0x40b06228)
01-17 23:55:23.859: E/AndroidRuntime(31248): FATAL EXCEPTION: main
01-17 23:55:23.859: E/AndroidRuntime(31248): java.lang.NoSuchMethodError: com.company.game.GameActivity.onCreateGameActivity
01-17 23:55:23.859: E/AndroidRuntime(31248):    at com.company.game.GameActivity.onCreate(GameActivity.java)
01-17 23:55:23.859: E/AndroidRuntime(31248):    at android.app.Activity.performCreate(Activity.java:4635)
01-17 23:55:23.859: E/AndroidRuntime(31248):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
01-17 23:55:23.859: E/AndroidRuntime(31248):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1999)
01-17 23:55:23.859: E/AndroidRuntime(31248):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2060)
01-17 23:55:23.859: E/AndroidRuntime(31248):    at android.app.ActivityThread.access$600(ActivityThread.java:127)
01-17 23:55:23.859: E/AndroidRuntime(31248):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1181)
01-17 23:55:23.859: E/AndroidRuntime(31248):    at android.os.Handler.dispatchMessage(Handler.java:99)
01-17 23:55:23.859: E/AndroidRuntime(31248):    at android.os.Looper.loop(Looper.java:137)
01-17 23:55:23.859: E/AndroidRuntime(31248):    at android.app.ActivityThread.main(ActivityThread.java:4558)
01-17 23:55:23.859: E/AndroidRuntime(31248):    at java.lang.reflect.Method.invokeNative(Native Method)
01-17 23:55:23.859: E/AndroidRuntime(31248):    at java.lang.reflect.Method.invoke(Method.java:511)
01-17 23:55:23.859: E/AndroidRuntime(31248):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-17 23:55:23.859: E/AndroidRuntime(31248):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-17 23:55:23.859: E/AndroidRuntime(31248):    at dalvik.system.NativeStart.main(Native Method)
01-17 23:55:23.984: D/dalvikvm(207): GC_CONCURRENT freed 346K, 25% free 17868K/23559K, paused 2ms+5ms
01-17 23:55:23.992: D/AmazonToggle(300): setText toggle_on
01-17 23:55:23.992: D/AmazonToggle(300): setText toggle_off
01-17 23:55:24.000: D/QuickSettings-Wifi(300): handleSelection Begin
01-17 23:55:24.062: W/ActivityManager(207):   Force finishing activity com.company.game/.GameActivity

(GameActivity 是一个扩展 SDLActivity 的类,SDLActivity 扩展了 Activity)。 我假设这意味着它正在寻找一种名为“com.company.game.GameActivity.onCreateGameActivity”的方法

这是一个非常奇怪的方法,因为它应该被称为 com.company.game.GameActivity.onCreate...

我只是想确保这确实是错误的含义 - 如果这是它的含义,那么我完全被难住了,我不知道为什么它会将 GameActivity 附加到方法名称。 (顺便说一句,这只发生在某些安卓设备上——在其他设备上,应用程序运行良好,没有任何错误……)

编辑: 这是我的游戏 Activity :

package com.company.game;

import org.libsdl.app.*;
import android.os.Bundle;
import android.util.Log;

import com.google.android.gms.ads.*;

/**
 * Game Activity
 */
public class GameActivity extends SDLActivity {

    // Interstiatial advert
    public static InterstitialAd mInterstitialAd;
    public static boolean mShowingInterstitial;
    public static void showInterstitial() {
        Log.v("SDL", "Attempting to Show Iterstitial!");
        mShowingInterstitial = true;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Interstitial advert
        mInterstitialAd = new InterstitialAd(this);
        mInterstitialAd.setAdUnitId("Ad id here");

        mInterstitialAd.setAdListener(new AdListener() {
            @Override
            public void onAdClosed() {
                AdRequest adRequest = new AdRequest.Builder().build();
                mInterstitialAd.loadAd(adRequest);
            }

            @Override
            public void onAdFailedToLoad(int errorCode) {
                AdRequest adRequest = new AdRequest.Builder().build();
                mInterstitialAd.loadAd(adRequest);
            }
        });

        AdRequest adRequest = new AdRequest.Builder().build();
        mInterstitialAd.loadAd(adRequest);
    }
}

list :

<?xml version="1.0" encoding="utf-8"?>
<!-- Replace org.libsdl.app with the identifier of your game below, e.g.
     com.gamemaker.game
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.company.game"
      android:versionCode="4"
      android:versionName="1.0.3"
      android:installLocation="auto">


    <!-- Minimum Android 4.0.3 Target Android 5.0 -->
    <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="21"/>

    <!-- OpenGL ES 2.0 -->
    <uses-feature android:glEsVersion="0x00020000" /> 

    <!-- Permissions --> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>



    <application android:label="Game"
                 android:icon="@drawable/ic_launcher"
                 android:allowBackup="true"
                 android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
                 android:hardwareAccelerated="true" >

        <meta-data android:name="com.google.android.gms.version"
                   android:value="@integer/google_play_services_version" />

        <activity android:name="GameActivity"
                  android:label="Game"
                  android:configChanges="keyboardHidden|orientation"
                  android:screenOrientation="sensorLandscape"
                  >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name="com.google.android.gms.ads.AdActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
            android:theme="@android:style/Theme.Translucent" />

    </application>

</manifest> 

我的 SDLActivity 是来自 SDL 2.0.4 的 SDLActivity

最佳答案

您的堆栈跟踪提供了足够的信息,

01-17 23:55:23.835: D/dalvikvm(31248): Trying to load lib /data/data/com.company.game/lib/libSDL2.so 0x415e7228 01-17 23:55:23.835: D/dalvikvm(31248): Added shared lib /data/data/com.company.game/lib/libSDL2.so 0x415e7228 01-17 23:55:23.835: D/dalvikvm(31248): Trying to load lib /data/data/com.company.game/lib/libSDL2_ttf.so 0x415e7228 01-17 23:55:23.843: D/dalvikvm(31248): Added shared lib /data/data/com.company.game/lib/libSDL2_ttf.so 0x415e7228 01-17 23:55:23.843: D/dalvikvm(31248): No JNI_OnLoad found in /data/data/com.company.game/lib/libSDL2_ttf.so 0x415e7228, skipping init 01-17 23:55:23.843: D/dalvikvm(31248): Trying to load lib /data/data/com.company.game/lib/libmain.so 0x415e7228 01-17 23:55:23.843: D/dalvikvm(31248): Added shared lib /data/data/com.company.game/lib/libmain.so 0x415e7228 01-17 23:55:23.843: D/dalvikvm(31248): No JNI_OnLoad found in /data/data/com.company.game/lib/libmain.so 0x415e7228, skipping init 01-17 23:55:23.859: D/AndroidRuntime(31248): Shutting down VM

您尝试加载的 JNI 库存在一些问题。 这导致从 JNIlibs 调用任何 native 函数导致 NoSuchMethodError。

奇怪的事情:

01-17 23:55:23.859: E/AndroidRuntime(31248): java.lang.NoSuchMethodError: com.company.game.GameActivity.onCreateGameActivity 01-17 23:55:23.859: E/AndroidRuntime(31248): at com.company.game.GameActivity.onCreate(GameActivity.java)

应该提供崩溃的行号。

关于Java 这个错误是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34844650/

相关文章:

c++ - 优先顺序 : Smart Pointer and Class Destructor

c++ - SDL_PollEvent() 空闲时口吃?

java - 如何使用 java 播放 .wav 文件

java - android中两个日期之间的差异

android - fragment 中 RecyclerView 上的 SearchView

android - 带有 html 表格的 TextView

c++ - SDL Surface Being used without being initialized 错误

java - 控制另一个类中的对象

java - 如何将 ActionScript 3 客户端连接到 Java 服务器?

android - Jetpack compose - 在文本后面绘制背景