2015-01-06 21 views
16

Farklı klasörlerde sınıfları etkinliklerden kurmak istiyorum. Android Studio'da sınıf klasörleri nereye eklenir?

import classes.auth; 

Yani gradle kuruluşları bir araya gitti: Geçerli klasör yapısı:

-> APP 
    -> Manifests 
    -> Java 
    -> com.test.testing 
     -> classes 
      auth.java 
     home_activity 
    -> libs 

auth.java

package com.test.testing; 
// error here: Package name ‘com.test.testing’ does not correspond to file path. 
public class auth{ 

    public void auth(){} 
} 

Artı, ben aktivitede bu sınıfı arayamam bu benim yapılandırmalarım:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.2" 

    defaultConfig { 
     applicationId "com.test.testing" 
     minSdkVersion 15 
     targetSdkVersion 21 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    sourceSets { 
     main { 
      java.srcDirs = ['src/main/java', 'java/', 'src/main/java/com/test/testing/classes'] 
      assets.srcDirs = ['src/main/assets', 'src/main/assets/'] 
     } 
    } 
} 

Android Studio, klasör yapıları hakkında biraz kafa karıştırıcı, seçebileceğimiz birkaç seçeneğimiz var ve bunlardan bazıları hakkında hiçbir fikrim yok. Benim durumumda, "sınıflar" klasörünü "Java Klasörü" olarak ekledim. enter image description here

DÜZENLEME 1: ucu yerine bir klasörün bir paket yaratmaktı. Bu yüzden paketi ve bunun içinde yeni bir dosya oluşturdum. Otomatik olarak, android stüdyo bu bilgi ile dolu auth.java;

package com.test.testing.classes; 

public class auth { 

} 

Sorun şu ki, sınıfı yine de etkinliklere alamıyorum. Ben import classes (aktivitesinde) yazmaya başladığınızda Hintçe bir dokümantasyon yardımı olarak görünür ama söylenmesi ilişkili herhangi bir nesne, yok:

import classes.auth; 

hatayı verir.

Ben Gradle dosyasını oluşturmak için tekrar gitti ve java.srcDirs bir şey eklemek vermedi:

sourceSets { 
     main { 
      java.srcDirs = ['java/', 'src/main/java'] 
     } 
    } 

DÜZENLEME 2: çözüm import sorununa dize oldu. Bunun yerine

import classes.auth; 

ait olmalı:

+0

Endişelenme, ben bir başkası olmadım. Cevabınızı iki nedenden dolayı kabul etmedim: stackoverflow bana henüz izin vermez ve paketi oluşturduktan sonra bile bazı sorunlar buluyorum. – Linesofcode

cevap

17

Seç Package yukarıdaki Liste gelen birçok kişi dosya yapısı konusunda kafası karışık olduğunu düşünüyorum

1

(sizin geçmeli atış), işte burada

import com.test.testing.classes.auth; 
:

app 
    |--> manifests 
    |--> java 
    |  |--> com.example.yourapp 
    |  |      |--> MainActivity.java 
    |  |      |--> YOUR_PACKAGE_FOLDER 
    |  | 
    |  |--> com.example.yourapp(android test) 
    |  |--> com.example.yourapp(test) 
    | 
    |--> res 

File -> New -> Package, böylece android stüdyo klasörü doğru konumda oluşturacaktır.
(File -> New -> Java Class sınıflar için)

İlgili konular