Geofences (Android app) java.lang.ClassNotFoundException MainActivity

I have a ASUS Eee tab (Transformer Prime TF201 Android v4.1.1). I read the Geofencing API and downloaded the sample application below on my device => http://developer.android.com/training/location/geofencing.html . But it ends when I open it.

I set the target file sdk = 16 to the AndroidManifest.xml file

Logcat

06-04 19:39:34.176: E/AndroidRuntime(2596): FATAL EXCEPTION: main 06-04 19:39:34.176: E/AndroidRuntime(2596): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.android.geofence/com.example.android.geofence.MainActivity}: java.lang.ClassNotFoundException: com.example.android.geofence.MainActivity 06-04 19:39:34.176: E/AndroidRuntime(2596): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983) 06-04 19:39:34.176: E/AndroidRuntime(2596): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 06-04 19:39:34.176: E/AndroidRuntime(2596): at android.app.ActivityThread.access$600(ActivityThread.java:130) 06-04 19:39:34.176: E/AndroidRuntime(2596): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 06-04 19:39:34.176: E/AndroidRuntime(2596): at android.os.Handler.dispatchMessage(Handler.java:99) 06-04 19:39:34.176: E/AndroidRuntime(2596): at android.os.Looper.loop(Looper.java:137) 06-04 19:39:34.176: E/AndroidRuntime(2596): at android.app.ActivityThread.main(ActivityThread.java:4745) 06-04 19:39:34.176: E/AndroidRuntime(2596): at java.lang.reflect.Method.invokeNative(Native Method) 06-04 19:39:34.176: E/AndroidRuntime(2596): at java.lang.reflect.Method.invoke(Method.java:511) 06-04 19:39:34.176: E/AndroidRuntime(2596): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 06-04 19:39:34.176: E/AndroidRuntime(2596): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 06-04 19:39:34.176: E/AndroidRuntime(2596): at dalvik.system.NativeStart.main(Native Method) 06-04 19:39:34.176: E/AndroidRuntime(2596): Caused by: java.lang.ClassNotFoundException: com.example.android.geofence.MainActivity 06-04 19:39:34.176: E/AndroidRuntime(2596): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 06-04 19:39:34.176: E/AndroidRuntime(2596): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 06-04 19:39:34.176: E/AndroidRuntime(2596): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 06-04 19:39:34.176: E/AndroidRuntime(2596): at android.app.Instrumentation.newActivity(Instrumentation.java:1053) 06-04 19:39:34.176: E/AndroidRuntime(2596): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974) 06-04 19:39:34.176: E/AndroidRuntime(2596): ... 11 more 

enter image description here

AndroidManifest.xml

 <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2013 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.geofence" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" /> <!-- Requests address-level location access, which is usually necessary for geofencing --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:allowBackup="true" > <!-- The app entry point --> <activity android:name="com.example.android.geofence.MainActivity" android:label="@string/title_activity_geofence" > <intent-filter> <!-- This activity is triggered when the system tries to start the app main activity --> <action android:name="android.intent.action.MAIN" /> <!-- This activity should be linked to the app Launcher icon --> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name="com.example.android.geofence.ReceiveTransitionsIntentService" android:exported="false"></service> </application> </manifest> 
+6
source share
3 answers

@ stud91 I have an example sample project from above and I changed some basic things

  • Create folder "libs"
  • Place the android-support-v4.jar and google-play-services.jar Jar files.

And run a sample project. It works like a charm. you can find google-play-services_lib from " adt-bundle-windows-x86 \ sdk \ extras \ google \ google_play_services \ libproject \ google-play-services_lib \ libs " I think you used the Goolge package for this. Remove this package. Delete all links that you created for this project. Clean the sample project and enjoy. my sample project structure and out put

+1
source

in accordance with the official Android team Creating and monitoring Geofences u must Configure the Google Play Services SDK , which runs on the Android emulator with AVD, which runs the Google API platform based on Android 4.2.2 or later.

in a triangular reference geofences say that:

 Note: To make your app compatible with platform version 1.6 and later, the activity that displays the DialogFragment must subclass FragmentActivity instead of Activity. Using FragmentActivity also allows you to call getSupportFragmentManager() to display the DialogFragment. 
0
source

I had the same issue starting with an Activity that extends MapActivity . It took time and research to find the answer. Adding uses-library to manifest.xml in the application tag fixed the problem for me:

 <uses-library android:name="com.google.android.maps" /> 
0
source

Source: https://habr.com/ru/post/970307/


All Articles