【问题标题】:java.lang.RuntimeException: Unable to instantiate activity ComponentInfo - NFC accessjava.lang.RuntimeException:无法实例化活动 ComponentInfo - NFC 访问
【发布时间】:2014-03-27 18:58:28
【问题描述】:

我见过许多与此类似的问题,但它们似乎特定于他们使用的类和包。我尝试了一些解决方案,但没有帮助我。我收到以下错误:

03-27 14:30:08.604: D/AndroidRuntime(8057): Shutting down VM
03-27 14:30:08.604: W/dalvikvm(8057): threadid=1: thread exiting with uncaught exception (group=0x41c02c80)
03-27 14:30:08.604: E/AndroidRuntime(8057): FATAL EXCEPTION: main
03-27 14:30:08.604: E/AndroidRuntime(8057): Process: org.nick.nfc.seaccess, PID: 8057
03-27 14:30:08.604: E/AndroidRuntime(8057): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.nick.nfc.seaccess/org.nick.nfc.seaccess.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "org.nick.nfc.seaccess.MainActivity" on path: DexPathList[[zip file "/system/framework/com.android.nfc_extras.jar", zip file 

任何想法,我应该如何解决它?

这里是主要活动的开始:

public class MainActivity extends Activity implements OnClickListener {

    private static final String TAG = MainActivity.class.getSimpleName();

    private Button gpInfoButton;
    private Button emvInfoButton;
    private Button walletInfoButton;

    private TextView infoText;

    private Terminal terminal;
    private CardConnection seConn;

    @Override
    public void onCreate(Bundle savedInstanceState) {
...

这是我清单中的活动标签。我似乎有时人们将完整的包名添加到清单中。我应该这样做,看看会发生什么?

    <activity
            android:name=".MainActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|s    mallestScreenSize"
            android:label="@string/title_activity_main" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

我找到了一个链接,指出问题可能与我如何编辑包含证书的 xml 文件有关。我已经粘贴了下面的文件;删除了证书。你觉得它有什么问题吗?

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Applications granted NFCEE access on user builds
    See packages/apps/Nfc/etc/sample_nfcee_access.xml for full documentation.
 -->
    <!--  Google wallet release signature -->
    <signer android:signature="308205bd852e" />

<!-- Sequent Wallet signature -->
<signer android:signature="30820243badc1df9d"/>
<!-- android-se-access signature-->
    <signer
android:signature="3082044cbd852e">
<package android:name="org.nic.nfc.seaccess"/>

</signer>
</resources>

这是项目工作区的视图

我刚刚在日志中看到了一些东西,我想将其添加到这个线程中。似乎是包名称旁边的“-1”和“-2”。那应该在那里,还是我的问题的原因? 以下是我正在谈论的日志消息:

03-27 22:55:10.884: E/AndroidRuntime(9436): Caused by:     java.lang.ClassNotFoundException: Didn't find class "org.nick.nfc.seaccess.MainActivity"     on path: DexPathList[[zip file "/system/framework    /com.android.nfc_extras.jar", zip file "/data/app/org.nick.nfc.seaccess-    1.apk"],nativeLibraryDirectories=[/data/app-lib/org.nick.nfc.seaccess-1, /vendor/lib,     /system/lib]]
03-27 22:58:02.104: E/AndroidRuntime(9880): Caused by:     java.lang.ClassNotFoundException: Didn't find class "org.nick.nfc.seaccess.MainActivity"     on path: DexPathList[[zip file "/system/framework    /com.android.nfc_extras.jar", zip file "/data/app/org.nick.nfc.seaccess-    2.apk"],nativeLibraryDirectories=[/data/app-lib/org.nick.nfc.seaccess-2, /vendor/lib,         /system/lib]]

【问题讨论】:

  • 会不会是不小心把MainActivity类放到了org.nick.nfc.seaccess以外的包里?
  • 不;我将发布工作区项目的图片。
  • 这个项目确实引用了一个 jar 文件,以及来自另一个项目的 JAVA 代码。您在图片中看不到它,因为一直在项目列表中。我是否会因为该项目找不到该项目的 MainActivity 而收到此错误?
  • 如果那个 JAR 文件只有com.android.nfc_extras.jar 那应该不是问题。这些其他项目中使用了哪些包名称?
  • 另一个项目来自SVN。名称是:src/main/java、src/main/resources 和 src/test/java

标签: java android security nfc


【解决方案1】:

从跟踪:java.lang.ClassNotFoundException:找不到类“org.nick.nfc.seaccess.MainActivity”

这意味着 org.nick.nfc.seaccess.MainActivity 类未定义或无法加载。

你有 org.nick.nfc.seaccess.MainActivity 类吗?代码是什么?它有默认构造函数吗?是否在清单中声明?

【讨论】:

  • 我没有看到主要活动的默认构造函数。我将文件的开头添加到此线程的开头。
  • 你的意思是 ? LAUNCHER 类别定义应用程序是否可以启动。它应该保持这种状态。
  • manifest中的包是什么,MainActivity.java中的包是什么?例如。它们是一样的吗?
  • 他们似乎都是org.nick.nfc.seaccess。
  • 这里有一长串需要验证的东西:stackoverflow.com/questions/4688277/…
猜你喜欢
  • 2011-06-08
  • 2016-11-17
  • 2015-03-04
  • 2013-04-12
  • 2013-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多