2013-07-16 47 views
5

Vì vậy, tôi đã nhập một dự án android và sau khi đấu tranh một thời gian khi tôi được hoàn thành, tôi đã biên soạn ứng dụng và nó bị lỗi.Không thể tìm thấy lớp MainActivity (dự án đã nhập)

Đây là file logcat:

07-16 23:02:23.700: E/AndroidRuntime(23092): FATAL EXCEPTION: main 
07-16 23:02:23.700: E/AndroidRuntime(23092): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{si.dvanadva.evanturist/si.dvanadva.evanturist.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "si.dvanadva.evanturist.MainActivity" on path: /data/app/si.dvanadva.evanturist-2.apk 
07-16 23:02:23.700: E/AndroidRuntime(23092): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at android.app.ActivityThread.access$600(ActivityThread.java:141) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at android.os.Handler.dispatchMessage(Handler.java:99) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at android.os.Looper.loop(Looper.java:137) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at android.app.ActivityThread.main(ActivityThread.java:5041) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at java.lang.reflect.Method.invokeNative(Native Method) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at java.lang.reflect.Method.invoke(Method.java:511) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at dalvik.system.NativeStart.main(Native Method) 
07-16 23:02:23.700: E/AndroidRuntime(23092): Caused by: java.lang.ClassNotFoundException: Didn't find class "si.dvanadva.evanturist.MainActivity" on path: /data/app/si.dvanadva.evanturist-2.apk 
07-16 23:02:23.700: E/AndroidRuntime(23092): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at android.app.Instrumentation.newActivity(Instrumentation.java:1054) 
07-16 23:02:23.700: E/AndroidRuntime(23092): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097) 

tôi có thể nhìn thấy từ dòng này:

07-16 23:02:23.700: E/AndroidRuntime(23092): Caused by: java.lang.ClassNotFoundException: Didn't find class "si.dvanadva.evanturist.MainActivity" on path: /data/app/si.dvanadva.evanturist-2.apk 

Đó có một vấn đề tìm lớp MainActivity. Nhưng tại sao?

Đây là cách tôi nhập khẩu dự án:

  • dự án liệu nhập khẩu (không có thư viện)

  • lọ Thêm vào libs thư mục trong dự án

  • gia tăng mất tích xây dựng con đường cho lọ

  • Đã nhập ba dự án thư viện (dự án gốc đã phát hiện chúng)

Ba dự án thư viện là tất cả trong cùng một thư mục như dự án ban đầu (trong trường hợp tôi đặt chúng sai hoặc một cái gì đó)

Nếu bạn cần bất kỳ thông tin bổ sung xin vui lòng cho tôi biết, tôi cần phải giải quyết vấn đề này

Gói và nội dung của họ:

enter image description here

mã đầy đủ AndroidManifest:

012.
<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="si.dvanadva.evanturist" 
android:versionCode="7" 
android:versionName="1.1.2" 
android:installLocation="preferExternal"> 

<!-- ZA MAPE --> 
<permission 
    android:name="com.dd.evanturist.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature"/> 
<uses-permission android:name="com.dd.evanturist.permission.MAPS_RECEIVE"/> 

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 
    <!-- External storage for caching. --> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <!-- My Location --> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
    <!-- Maps API needs OpenGL ES 2.0. --> 
    <uses-feature 
    android:glEsVersion="0x00020000" 
    android:required="true"/> 
    <!-- End of copy. --> 

<!-- QR STUFF --> 

<uses-permission android:name="android.permission.CAMERA"/> 
<uses-permission android:name="android.permission.FLASHLIGHT"/> 

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="17" /> 

<application 
    android:allowBackup="true" 
    android:name=".MyApplication" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/evanturist" 
    android:theme="@style/AppTheme" > 
    <meta-data 
     android:name="com.google.android.maps.v2.API_KEY" 
     android:value="AIzaSyDK5zGCwh3awW08BOAwupjU4hw8750WuLM"/> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/evanturist" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".DBActivity"></activity> 
    <activity android:name=".DbTestActivity"></activity> 
    <activity android:name=".PlaceItemActivity"></activity> 
    <activity android:name=".CheckpointsActivity"></activity> 
    <activity android:name=".OptionsActivity"></activity> 
    <activity android:name=".MapDirectionsActivity"></activity> 
    <activity android:name=".VictoryActivity"></activity> 
    <activity android:name=".QrActivity" 
     android:screenOrientation="landscape" 
     android:theme="@android:style/Theme.NoTitleBar.Fullscreen"></activity> 
    <activity android:name=".QrPortraitActivity" 
     android:screenOrientation="portrait" android:theme="@android:style/Theme.NoTitleBar"></activity> 

</application> 

tab Xuất lúc xây dựng con đường:

enter image description here

+0

Eclipse có gói tương thích? – gunar

+0

@gunar Xin lỗi, tôi không hiểu câu hỏi của bạn. Tôi đang sử dụng nhật thực, nhưng ý bạn là gì? – Guy

+0

'MainActivity' của bạn mở rộng từ' Activity' hoặc từ 'FragmentActivity'? – gunar

Trả lời

3

Sự cố được giải quyết !!

Toàn bộ sự cố là do dự án thư viện Dịch vụ của Google Play gây ra. Khi ai đó gửi cho tôi dự án này, anh ta cũng đính kèm cả ba dự án thư viện cần thiết cho dự án. Sau đó tôi đã thêm tất cả ba dự án thư viện trực tiếp từ tệp mà anh ấy gửi cho tôi.

Bây giờ, bạn luôn cần thêm dịch vụ Google Play từ vị trí tải xuống SDK (không phải từ bất kỳ nơi nào khác - nguồn bên ngoài), vì vậy tôi vừa xóa các dịch vụ google play hiện tại và thêm những dịch vụ mà tôi tải xuống bằng SDK người quản lý và vấn đề đã được giải quyết.

1

1) Giữ tất cả các hoạt động dưới cùng một gói [nói com.compname.proj.views].

2) Đảm bảo trong tệp kê khai, thuộc tính gói được đặt thành gói ở trên [ví dụ: com.compname.proj.views].

3) Trong manifest, dưới tất cả các thẻ hoạt động, đảm bảo android: tên thuộc tính có giá trị khớp lệnh xuống dưới mẫu:

android:name=".<your activity class name>" 

Ex: android: name = "SomeActivity."

Quan điểm của tôi không sử dụng tên gói + tên lớp hoạt động cho khai báo hoạt động kê khai.

Khi bạn chắc chắn về điểm nêu trên, nếu vẫn cố vẫn còn, sau đó:

  1. Xóa thư mục bin.

  2. Tạo lại dự án của bạn và chạy.

+0

Cảm ơn bạn đã trả lời của bạn! Tôi có ba gói nhưng chỉ các hoạt động từ gói chính được khai báo trong tệp kê khai. Tôi đã thay đổi khai báo manifest thành .activityname (tôi đã xóa tên gói) và nó không hoạt động. Tôi cũng đã cố gắng loại bỏ thùng rác và dự án làm sạch nhưng lỗi vẫn giữ nguyên. Vui lòng kiểm tra bài đăng gốc đã chỉnh sửa của tôi, nơi tôi đã đăng ảnh của tất cả các gói và nội dung cũng như tệp kê khai của chúng. – Guy

+0

Nếu bạn đang sử dụng APK phiên bản trước trong thiết bị/trình giả lập của mình, hãy gỡ cài đặt và cài đặt phiên bản mới nhất của bản dựng mới nhất.Từ nhật ký sự cố /data/app/si.dvanadva.evanturist-2.apk cho biết có 2 bản dựng (apks) trong hệ thống. Ngoài ra, có khả năng cài đặt/cấu hình dự án của bạn chưa hiệu quả khi xây dựng ứng dụng của bạn. Điều này có thể là do bộ nhớ đệm của các thuộc tính dự án bằng nhật thực. – Chandan

+0

Tôi đã thử xóa phiên bản trước và cài đặt bản dựng mới nhất nhưng không hoạt động. Làm cách nào để khắc phục sự cố với 2 bản dựng và cài đặt/cấu hình? Ngoài ra, hãy kiểm tra chỉnh sửa mới của tôi, tôi đã đăng ảnh chụp màn hình của tab xuất tại đường dẫn xây dựng, có thể sự cố là có? – Guy

Các vấn đề liên quan