我在java + c ++上有一个应用程序。
IDE是 - 带有android插件的visual studio。
我有2个活动:1-nativeActivity,2。对java的活动。
java上的活动是主要的。 在java活动之后我开始使用nativeactivity。在java活动中有一个购买经理。我希望通过本地活动给他打电话。
<activity android:configChanges="orientation|keyboardHidden" android:name="android.app.NativeActivity"
android:label="@string/app_name" android:theme="@android:style/Theme.Translucent">
<meta-data android:name="android.app.lib_name" android:value="main" />
</activity>
<activity android:name="BillingActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
在onCreate BillingActivity中我启动了nativeActivity。 在我的原生活动中
jclass billing = env->FindClass("Lcom/crystalreality/crystaltv/BillingActivity;");
但我有
jclass billing = env->FindClass("Lcom/crystalreality/crystaltv/BillingActivity;");
05-20 16:40:55.061: W/System.err(28592): java.lang.NoClassDefFoundError: Lcom/crystalreality/crystaltv/BillingActivity;
答案 0 :(得分:0)
我怀疑你不需要&#34; L&#34;在你的班级信号的开头(和#34;;&#34;在最后)。
jclass billing = env->FindClass("com/crystalreality/crystaltv/BillingActivity");
你应该只需要L ...;如果你正在寻找一个数组类,请形成sigs。这是我对these lines文档的理解。
如果失败了,你有没有使用任何混淆java方面?
答案 1 :(得分:0)
FindClass的正确用法是这样的:
env->FindClass("com/crystalreality/crystaltv/BillingActivity");